2014-02-07 184 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

在答案涌入之前,如果您從數據庫中獲取這些數據,那麼在此點(「按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

謝謝你。它工作完美。但我仍然沒有得到它如何工作哈哈。 –