Сортировка значений многомерного массива в PHP - PullRequest
0 голосов
/ 13 февраля 2012

У меня есть следующий массив:

Array ( [0] => Array 
               ( [name] => Jonah 
                 [age] => 27 )
        [1] => Array 
               ( [name] => Bianca 
                 [age] => 32 )
      )

Можно ли отсортировать значения подмассива в [age] в некоторый вид порядка, например, от низшего к высшему или наоборот?

Ответы [ 3 ]

6 голосов
/ 13 февраля 2012

Вы можете сделать это, используя usort:

usort($arr, function($a, $b)
{
    return $a['age'] - $b['age']; // sorts lowest to highest
});

Поменяйте местами $a и $b в функции, чтобы отменить порядок.

0 голосов
/ 13 февраля 2012

Это будет работать:

$ages = array();
foreach ($array as $value) {
  $ages[] = $value;
}

array_multisort($values, SORT_ASC, $array);

Любой способ хорош, но это «путь PHP» :

array_multisort () может использоваться для сортировки нескольких массивов одновременно, или многомерного массива по одному или нескольким измерениям .

0 голосов
/ 13 февраля 2012

Я думаю, что это возможно с bool usort ( array &$array , callback $cmp_function )

http://php.net/manual/en/function.usort.php

Просто определите обратный вызов, который сортирует по ключу [age] значения.

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