排序日期关联数组

时间:2012-10-26 18:43:31

标签: php

  

可能重复:
  Sorting an associative array in PHP

我有这个数组

array
  0 => 
    array
      'start_date' => string '2012-11-14' (length=10)
      'end_date' => string '2012-11-19' (length=10)
  1 => 
    array
      'start_date' => string '1980-10-10' (length=10)
      'end_date' => string '1980-10-10' (length=10)
  2 => 
    array
      'start_date' => string '2012-11-20' (length=10)
      'end_date' => string '2099-10-10' (length=10)

我想在start_date上对它进行排序。我不认为sort()方法适用于它。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

您可以使用usort

PHP 5.3 +

usort($array, function($a, $b) {
   //return strtotime($a['start_date']) - strtotime($b['start_date']);
   return strcmp($a['start_date'], $b['start_date']);
});

旧版本的PHP

function startDateCmp($a, $b) {
   //return strtotime($a['start_date']) - strtotime($b['start_date']);
   return strcmp($a['start_date']), $b['start_date']);
}

usort($array, 'startDateCmp');

答案 1 :(得分:1)

使用usort并提供您自己的功能来进行排序。

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

usort($array, "cmp");