2016-02-18 160 views
-1

我試圖填充數組與值:排序三維陣列

foreach($pallets as $pallet){ 
    $i++; 
    $orders[$i]['id'] = $pallet->id; 
    $orders[$i]['reference'] = $pallet->reference; 
    $orders[$i]['created_at'] = $pallet->created_at; 
    $orders[$i]['status'] = $pallet->getStatus(); 
} 

我怎麼能由他們created_at屬性責令數組中的值($i)?

非常感謝

+2

的可能的複製[?我如何排序在PHP陣列和數據(http://stackoverflow.com/questions/17364127/how - 可以-I-排序陣列和數據功能於PHP) – Ben

回答

0

提取created_at列和排序,雖然排序最初的陣列相同的:

array_multisort(array_column($orders, 'created_at'), SORT_ASC, $orders); 

這假定created_at是採用正確排序的格式,如2016-02-18 12:00。如果不是這樣,但如果它仍然是一個有效的日期/時間嘗試:

array_multisort(array_map('strtotime', array_column($orders, 'created_at')), 
       SORT_ASC, 
       $orders); 
0

使用usort(http://php.net/manual/en/function.usort.php):

function cmp($a, $b) 
{ 
    if ($a["created_at"] == $b["created_at"]) { 
     return 0; 
    } 
    return ($a["created_at"] < $b["created_at"]) ? -1 : 1; 
} 

usort($orders, "cmp"); 

foreach ($orders as $key => $value) { 
    echo "$key: $value\n"; 
}