2014-02-07 2 views
0
$data['rows'][1] = array('id' => '1', 'cell' => array('branch' => 'ANT', 'type' =>  'deliver', 'dateTime' => '2014-02-07 01:01:01')); 
$data['rows'][2] = array('id' => '2', 'cell' => array('branch' => 'ANT', 'type' =>  'deliver', 'dateTime' => '2014-02-06 01:01:01')); 
$data['rows'][3] = array('id' => '3', 'cell' => array('branch' => 'GB2', 'type' =>  'deliver', 'dateTime' => '2014-02-07 02:02:02')); 

Я хочу, чтобы отсортировать $data['rows'] нисходящие на основе dateTime. Как я могу это сделать?PHP - сортировка несколько тусклого массива ассоциативного специфического значения

+0

Прежде чем приходить ответы, если вы получаете данные из базы данных, было бы проще заказать их в этот момент ('order by dateTime desc'). Если нет, то нет проблем – webnoob

+0

смотрите здесь http://stackoverflow.com/questions/96759/how-do-i-sort-a-multidimensional-array-in-php – Ashish

+0

@webnoob эти массивы пришли из 4 таблиц, поэтому у меня есть для сортировки в массиве. есть ли способ отсортировать массив в php так же, как mysql? –

ответ

2

PHP-функция usort будет служить вашей цели:

usort($data["rows"], function($a, $b){ 
return strcmp($a["cell"]["dateTime"], $b["cell"]["dateTime"]); 
}); 

Обратите внимание, что приведенный выше код будет сортировать массив в порядке возрастания. В порядке убывания замените function($a, $b) на function($b, $a).

+0

+1 для быстрого и эффективного ответа –

+0

Я использовал ваш ответ и его работы, но я не знаю, как это работает. И где указать тип заказа, если DESC или ASC? –

+0

спасибо человеку. он работал отлично. Но все же я не понимаю, как это работает хаха. –

Смежные вопросы