Я хотел бы иметь уникальную функцию sort для нескольких ассоциативных массивов.
Лучшим кандидатом среди различных функций сортировки PHP будет uksort()
, (usort()
будет идеальным, но при этом ключи массива изменятся на числовой индекс (!)).
Например (с использованием более простого массива)
function sorting_by_length_desc ($a, $b)
{
return strlen($GLOBALS['arr'][$b]) - strlen($GLOBALS['arr'][$a]);
}
$arr = ('chandler' => 'bing', 'monica' => 'lewinsky');
uksort($arr, 'sorting_by_length_desc');
сделает $arr
равным
('monica' => 'lewinsky', 'chandler' => 'bing');
без влияния на клавиши.
Итак, как использовать одну и ту же функцию сортировки для любого массива, uksort()
, вызываемого в различных местах кода? Например, для $arr1
, $arr2
, ..., $arrn
?
Нужно ли использовать другой глобальный var с именем массива, который будет назначен массиву, который нужно отсортировать (перед сортировкой), и использовать глобально в функции сортировки?
Должно быть что-то еще, чище, верно?