数组不按时间排序


Array doesn't sort by time

$arr1 = array("time"=>'2011 10-06 10:20:10', "val"=>20);
$arr2 = array("time"=>'2011 11-06 10:20:10', "val"=>20);
$arr3 = array("time"=>'2011 05-06 10:20:10', "val"=>20);
$arr4 = array("time"=>'2011 07-06 10:20:10', "val"=>20);
$arr5 = array("time"=>'2011 09-06 10:20:10', "val"=>20);

$arrGroup[1] = array($arr1, $arr2, $arr3, $arr4, $arr5); //Add key here

foreach ($arrGroup as $key => $row) {
    foreach($row as $rKey=> $rVal){
        $time[$rKey]  = $rVal['time'];
        $val[$rKey] = $rVal['val'];
    }
}

我想按它的'时间'排序这个数组。但是,上面的代码不会对数组进行排序。

将时间转换为时间戳值,然后使用sort方法按日期排序

如果您希望维护内部数组的数据结构,那么使用时间戳作为外部数组的索引可能会更简单

$arrGroup[1] = array(
    '1234567890' => $arr1, 
    '1234567891' => $arr2, 
    '1234567892' => $arr3,
    '1234567893' => $arr4, 
    '1234567894' => $arr5
); 
asort($arrGroup[1]);