【问题标题】:Array doesn't sort by time数组不按时间排序
【发布时间】:2011-11-17 12:33:47
【问题描述】:
$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'];
    }

}

我想按“时间”对这个数组进行排序。但是,上面的代码并没有对数组进行排序。

【问题讨论】:

  • 您需要使用strtotime() 转换为时间戳,然后您可以轻松使用sort() 系列函数之一。
  • 该数组中没有时间。
  • How to Compare Dates in php? 的可能重复项

标签: php arrays sorting


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2019-12-26
      • 1970-01-01
      • 2011-08-22
      • 2021-04-16
      • 1970-01-01
      • 2017-04-03
      • 2014-07-24
      • 2016-01-15
      相关资源
      最近更新 更多