1

各行にインストール日がある一連の行をループする 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;

         }
4

2 に答える 2

5

これを達成する方法はたくさんありますが、おおよそこのようなものでしょうか?

$lowestDate = strtotime($lines[0]);
foreach($lines as $line){
    if(strtotime($line) < $lowestDate){
        $lowestDate = strtotime($line);
    }
}
echo "lowest date = " . date( 'y-m-d', $lowestDate);
于 2013-03-19T11:19:28.380 に答える
0

これを試して :

$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));
于 2013-03-19T11:18:26.267 に答える