Как отсортировать массив по под массиву
Array
(
[0] => Array
(
[ID] => 9
[BOSS] => Array
(
[0] => Array
(
[BOSS_FIO] => Пупкин Вася
[тут еще ключи]
)
[1] => Array
(
[BOSS_FIO] => Олегров Олег
[тут еще ключи]
)
[2] => Array
(
[BOSS_FIO] => Виктор Зайцев
[тут еще ключи]
)
)
)
[1] => Array
(
[ID] => 10
[BOSS] => Array
(
[0] => Array
(
[BOSS_FIO] => Кошка мышка
[тут еще ключи]
)
[1] => Array
(
[BOSS_FIO] => Кутузов Вася
[тут еще ключи]
)
[2] => Array
(
[BOSS_FIO] => Лионьтев Михаил
[тут еще ключи]
)
)
)
)
Как отсортировать общий массив по ключу BOSS[0][BOSS_FIO], именно первый индекс в BOSS по ключу BOSS_FIO asc, desc.
Пробовал сделать подобное:
usort(
$arOriginalData,
$this->buildSorter('BOSS', $arSortData['sort'])
);
и сама функция buildSorter:
function buildSorterHP($key, $sortOrder)
{
return function ($a, $b) use ($key, $sortOrder) {
if ($a[$key][0]['BOSS_FIO'] == '' && $b[$key][0]['BOSS_FIO'] != '') {
return 1;
}
if ($b[$key][0]['BOSS_FIO'] == '' && $a[$key][0]['BOSS_FIO'] != '') {
return -1;
}
if ($sortOrder === 'ASC') {
return $a[$key][0]['BOSS_FIO'] > $b[$key][0]['BOSS_FIO'];
} else {
return $a[$key][0]['BOSS_FIO'] < $b[$key][0]['BOSS_FIO'];
}
};
}
Но массив остался прежний.