我有多维数组的多维数组,这是它的最小化版本:
$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和你一样可以看到sent
是日期,它按随机顺序排列......
答案 0 :(得分:3)
使用usort
来自手册:
此函数将使用用户提供的比较函数按其值对数组进行排序。如果要排序的数组需要按照一些非平凡的标准进行排序,则应使用此函数。
function cmp($a, $b){
return strtotime($a['date'])-strtotime($b['date']);
}
usort($test, 'cmp');
答案 1 :(得分: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');
答案 2 :(得分:1)
我会选择array_multisort()
。