2013-03-19 3 views
0

У меня есть для каждого цикла, который проходит через набор строк, каждая строка имеет дату установки, но я хочу только получить самую раннюю дату установки из всех строк, это может быть любой случайной линией в цикле. Как мне это сделать? Должен ли я просто создавать массив дат, а затем сортировать его или просто проверять каждый раз, когда он петли? Пример кода был бы лучше. Формат даты просто: 2012-09-04Найти самую раннюю дату в цикле foreach

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; 

     } 
+0

Вы можете сортировать свой массив по дате. Проверьте [здесь] (http://stackoverflow.com/questions/6401714/php-order-array-by-date) – Rikesh

ответ

2

Там много способов для достижения этой цели, может быть что-то грубо, как это?

$lowestDate = strtotime($lines[0]); 
foreach($lines as $line){ 
    if(strtotime($line) < $lowestDate){ 
     $lowestDate = strtotime($line); 
    } 
} 
echo "lowest date = " . date('y-m-d', $lowestDate); 
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)); 
Смежные вопросы