-2

我有许多值的多维数组,这是它的最小化版本:

$test = array(
    array(
       'name'   => 'test',
       'date'   => '2012-04-30 11:06:01'
    ),

    array(
       'name'   => 'test2',
       'date'   => '2012-04-30 11:07:00'
    )
);

它只是继续......

现在日期是随机顺序的,所以我需要对这个数组进行排序,以便从最小日期到最大日期,更清楚地说,我这里是我的全尺寸数组转储: http: //pastebin.com/EzTNJpUx和 as你可以看到sent是日期,它是随机顺序的......

4

3 回答 3

3

使用排序

从手册:

此函数将使用用户提供的比较函数按数组的值对数组进行排序。如果您要排序的数组需要按照一些重要的标准进行排序,您应该使用此函数。

function cmp($a, $b){
     return strtotime($a['date'])-strtotime($b['date']);
}

usort($test, 'cmp');
于 2012-04-30T08:38:15.130 回答
1

猜猜你可以使用这样的东西,

usort() 和 DateTime 类(如果您使用 PHP5 或更高版本)。

您需要定义一个函数来比较两个元素(在这种情况下也是数组)。

function cmp($array1, $array2)
{
  $date1 = new DateTime($array1['sent']);
  $date2 = new DateTime($array2['sent']);

  if($date1 == $date2)
    return 0;

  return ($date1 < $date2) ? -1 : 1;
}

然后你打电话:

usort($test, 'cmp');
于 2012-04-30T08:42:18.077 回答
1

我会去array_multisort()

于 2012-04-30T08:43:41.460 回答