Ой достала меня это извечная проблема. Решил избавиться от этого раз и навсегда и в свою библиотеку ядра добавить мега полезную функцию сортировки многомерных массиво по ключу. Вот что получилось:
// _____________________________________________________________________________
function sdf_array_sorting_asc($a,$b)
// Выполняет: сравнение значений в отдельном ключе многомерного массива
{
if ($a['_fafa']==$b['_fafa']) { return 0; }// если значения равны
if ($a['_fafa']<$b['_fafa']) { return -1; }// если a<b
return 1;// если a>b
}// /sdf_array_sorting_asc
// _____________________________________________________________________________
function sdf_array_sorting_key($array,$key)
// Выполняет: сортировку многомерного массива по ключу
// Возвращает: отсортированный массив
{
$r=$array;// делаем копию массива для преобразований
foreach($r as &$v) { $v['_fafa']=$v[$key]; }// разбираем многомерный массив на части
// сортируем массив через пользовательскую функцию sdf_array_sorting_asc
usort($r, 'sdf_array_sorting_asc');
foreach($r as &$v) { unset($v['_fafa']); }// собираем обратно массив
return $r;// возвращаем результат
}// /sdf_array_sorting_key
Вызов получается простой:
$array=sdf_array_sorting_key($array,'key');