@Alpha12

Как записать первое значения из цикла?

Добрый день, есть массив в нем есть даты, может быть так что они идут не по порядку.
Мне нужно из всего цикла найти самую новую дату. И записать в переменную. Пока получается только перезаписывать..

Делаю так
$i =0;

if(file_exists('./date.txt')){
    $last_date = file_get_contents('./date.txt');

    // echo $last_date;
}
$message = '';
// $message = array();
foreach($xml->channel->item as $channel){ 
     $i++;   
  
    if(strtotime($channel->pubDate) > strtotime($last_date) ){
              
            file_put_contents('date.txt',$channel->pubDate);
            
            echo $channel->pubDate;
        // echo $channel->pubDate;
        // echo $channel->title .'<br>'; 
        // $message .= 'Нові замовлення на сайті freelance.ua <br>';
        $message .= 'Задача: '.$channel->title. PHP_EOL;
        // $message .='Опис <br>';
        $message .= $channel->description . PHP_EOL;
        $message .= 'Посилання:'.  $channel->link . PHP_EOL.'-----------------'.PHP_EOL;
        // $message .= $channel->link .'<br>';
        // $message .='-----------------';
        
        // $message[] = array(
        //     'title' => $channel->title,
        //     'description' => $channel->description,
        //     'link' => $channel->link,
        // );

    } 

    
    
}
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
sergiks
@sergiks Куратор тега PHP
♬♬
сначала пройти циклом по всем датам, отбирая победителя.
Затем уже что-то выводить или записывать в файл.
$recentChannel = null;
foreach ($xml->channel->item as $channel) {
    if (!$recentChannel || strtotime($channel->pubDate) > strtotime($recentChannel->pubDate)) {
        $recentChannel = $channel;
    }
}
 
// теперь $recentChannel содержит канал с самой свежей датой
Ответ написан
Комментировать
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
$maxPubDate = '0000-00-00 00:00:00';
foreach($xml->channel->item as $channel) {
    if(strtotime($channel->pubDate) > strtotime($maxPubDate)) {
        $maxPubDate = $channel->pubDate;
    }
}

var_dump($maxPubDate);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы