【问题标题】:Find the earliest date in a foreach loop在 foreach 循环中查找最早的日期
【发布时间】:2013-03-19 11:13:30
【问题描述】:

我有一个 for each 循环,它遍历一组行,每行都有一个安装日期,但我只想从所有循环的行中获取最早的安装日期,这可以是循环中的任何随机行.我该怎么做?我应该只创建一个日期数组然后对其进行排序,还是应该在每次循环时检查它?最好有一个代码示例。日期的格式很简单:2012-09-04

    foreach($lines as $line){


                $install_date = $line->installation_date_c;
                $water_cost = $line->water_cost_c;
                $energy_cost = $line->energy_cost_c;
                $oweeks = 52;
                $oyears = $line->operating_years_c;
                $default_curr = $line->currency_id;

         }

【问题讨论】:

  • 您可以按日期对数组进行排序。检查here

标签: php arrays datetime


【解决方案1】:

有很多方法可以做到这一点,大概是这样吧?

$lowestDate = strtotime($lines[0]);
foreach($lines as $line){
    if(strtotime($line) < $lowestDate){
        $lowestDate = strtotime($line);
    }
}
echo "lowest date = " . date( 'y-m-d', $lowestDate);

【讨论】:

    【解决方案2】:

    试试这个:

    $lines  = your array;
    $sort = array();
    foreach($lines as $key=>$line){
        $install_date[$key] = $line->installation_date_c;
     }
    
    array_multisort($install_date, SORT_DESC, $lines);
    
    echo "<pre>";
    print_r(current($lines));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2016-04-30
      • 2017-11-06
      • 2021-12-23
      相关资源
      最近更新 更多