2013-05-28 70 views
-1

我有一個數組的數組。我想通過['date']字段排序這些數組。所以最新的是在索引[0]。我怎樣才能做到這一點?如何通過內部數組鍵值對數組進行排序?

這裏是我的print_r

$array= (
    [0] => Array 
     (
      [date] => 01/05/2013 12:00 
      [location] => Town Hall 
      [minutes] => mydomain.com 
      [agenda] => 
     ), 
[1] => Array 
     (
      [date] => 09/05/2013 12:00 
      [location] => Town Hall 
      [minutes] => mydomain.com/walker 
      [agenda] => 
     ) 

) 
+0

你需要http://www.php.net/manual/en/function.array-multisort.php – Twisted1919

+0

也有關,也許更容易理解:PHP,排序對象字段數組](http://stackoverflow.com/q/4282413/218196)。 –

回答

1

只是嘗試這一點 -

$array = array(
    0 => array('date'=>'01/05/2013 12:00', 'location'=>'A'), 
    1 => array('date'=>'09/05/2013 12:00', 'location'=>'B'), 
    2 => array('date'=>'03/05/2013 12:00', 'location'=>'C'), 
    3 => array('date'=>'02/05/2013 12:00', 'location'=>'D') 
); 

echo '<pre>'; 
print_r($array); 
echo '</pre>'; 

function sorting($a, $b){ 
    $a = strtotime($a['date']); 
    $b = strtotime($b['date']); 

    if ($a == $b) { 
     return 0; 
    } 
    return ($a < $b) ? -1 : 1; 
} 

usort($array, "sorting"); 

echo '<pre>'; 
print_r($array); 
echo '</pre>'; 

看到現場演示 - http://codepad.org/biXJgHQA

+0

工程就像一個魅力,謝謝。 – Nicola

+0

:)我的榮幸。你是最尼古拉 – HADI

+0

相關的問題,如果我想然後檢查第一個數組日期以查看它是否在未來,我會更好地將其存儲爲不同的格式? – Nicola

0

一個例子試試這個:

usort($array,function($a,$b){ 
    return strcmp($a['date'],$b['date']); 
} 

,或者PHP < 5.3

function my_sort($a,$b){ 
    return strcmp($a['date'],$b['date']); 
} 
usort($array,'my_sort'); 
+1

以及如果php <5.3呢? – Twisted1919

+0

'function my_sort($ a,$ b){return strcmp($ a ['date'],$ b ['date']); } usort($ array,'my_sort');' – StampyCode

+0

@TimStamp更好地更新答案,而不是將其置於評論中。 –

相關問題