Народ такой вопрос , есть функция сортировки, когда сдавала ее на проверку мне сказали что ее можно сделать в 1 строчку, у меня лично получается вот такой код
Вот ТЗ к функции:
Создайте массив меню: каждый элемент массива (т.е. каждый пункт меню) должен содержать ключи 'title' - название пункта меню, 'sort' - индекс сортировки (число), 'path' - url.
Создайте вспомогательную функцию arraySort($array, $key = 'sort', $sort = SORT_ASC) и реализуйте ее, эта функция должна отсортировать массив по указанному ключу в указанном направлении (SORT_ASC - по возрастанию, SORT_DESC - по убыванию - встроенные в php константы), если параметр $sort указан не верно, то по-умолчанию выполняется сортировка по возрастанию.
Отсортируйте массив меню по ключу sort по возрастанию, выведите его, а затем отсортируйте по убыванию и снова выведите.
Кому не влом покажите как можно расписать данную задачу в пару строк.
function arraySort($array, $sort = SORT_ASC , $key ='sort' )
{
//Переделать, как это было сказанно.
usort($array, function($lt, $rt) use ($key, $sort): int
{
// возрастание
if ($sort == SORT_ASC or $sort != SORT_ASC and $sort !== SORT_DESC) {
return ($lt[$key] <=> $rt[$key]);
}
// убывание
return ($rt[$key] <=> $lt[$key]);
});
foreach ($array as $item) {
$items[] = [$item['title'], $item['path'], $item['title']];
}
return $items;
}