2010-08-29 45 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