Сортировать многомерный массив по значениям всего - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь отсортировать многомерный массив по итоговым значениям в php.

[ c => [1=>22, 2=> 14, 3=> 55], a => [7=> 33, 2=> 19, 51=> 43, 14=> 27], ... ]

, поскольку итоговые значения подрешетки выше, чем в c, в этом примере это должно быть первым,Я был бы очень признателен за помощь в решении этой проблемы.

Ответы [ 2 ]

0 голосов
/ 10 ноября 2019

Вы можете использовать array_multisort с array_map

array_multisort(array_map(function($v){return array_sum($v);},$a), SORT_DESC, $a);

Первый аргумент с array_map является суммой всего подмассива. Вы можете изменить порядок массива результатов, изменив 2-й аргумент SORT_ASC, SORT_DESC

Рабочий пример: https://3v4l.org/4fpXh

0 голосов
/ 09 ноября 2019

Как комментарий @ splash58 (просто чтобы сделать формальный ответ):

Используйте uasort () и array_sum как:

uasort($arr, function($a, $b) { return array_sum($b) - array_sum($a);});

Живой пример: 3v4l

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...