2010-08-29 58 views
5

數組基地我有一個這樣的數組:排序鍵

Array 
(
    [0] => Array 
     (
      [title] => some title 
      [time] => 1279231500 
     ) 

    [1] => Array 
     (
      [title] => some title 2 
      [time] => 1279231440 
     ) 

    [2] => Array 
     (
      [title] => some title 3 
      [time] => 1279229880 
     ) 
) 

它如何基於時間我可以排序?

回答

4

您可以這樣排序它(因爲它是一個關聯數組):

function cmp($a, $b) 
{ 
    return strcmp($a['time'], $b['time']); 
} 

usort($your_array, "cmp"); 
print_r($your_array); 
+0

任何想法如何顛倒順序? – greenbandit 2010-08-29 18:36:45

+0

@greenbandit - 將比較函數改爲'return strcmp($ b ['time'],$ a ['time']);' - usort()根據'cmp()'進行排序。 – 2010-08-29 18:41:51

+0

@reverse:或者返回'-1 * strcmp(...);'或者在排序後應用'array_reverse'。 – NikiC 2010-08-29 18:42:48

1

如濃湯提到的,你不應該爲整數值使用STRCMP。

使用此功能

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

對於整數值,'return $ a ['time'] - $ b ['time'];'就足夠了。 – salathe 2012-01-19 12:19:12