Я пытаюсь получить простую функцию сортировки, используя анонимные функции. Один для сортировки по возрастанию и сортировке.
Можно ли сразу же отобразить переменную $ sortBy , когда она создана, но все еще переданы при переходе $ x и $ y ? Я хочу иметь возможность динамически передавать ключ при их создании.
$sortBy = 'some_key'; // descending $sort['desc'] = function($x, $y) { if($x['data'][$sortBy] == $y['data'][$sortBy]) return 0; return ($x['data'][$sortBy] > $y['data'][$sortBy]) ? -1 : 1; }; uasort($arrayToSort, $sort[$order]);
EDIT: я передаю этот массив как параметр для uasort ().
Вы можете передать переменную в охватывающей области с use
ключевого слова use
( Пример № 3 Закрытие и область охвата ) :
$sortBy = 'some_key'; $sort['desc'] = function($x, $y) use ($sortBy) { // implementation };