Приветствую, помогите разобраться с php, небольшой совсем опыт. Не могу понять как сделать.
Есть массив, в нем есть поля date1, date2, published, с которыми работаю для выборки
[date1] =2023-01-02 22:55:00
[date2] = 2023-01-16 22:56:00
[published] = 1
В цикле на php получаю все записи где published==1 и date1 больше текущей даты. Это вроде получилось, но записей таких несколько, и не могу понять как вывести только первую запись подходящую под условие?
Если проверяю через счетчик первую итерацию цикла, и делаю break, то если первая запись из списка не попадает под условие например published не равно 1 то вообще ничего не выводиться. Как правильно написать это условие?
$to = date('Y-m-d', time());
$today = new DateTime($to);
$i = 0;
foreach($array as $key => $val) {
$date1 = date('Y-m-d', strtotime($val['date1']));
$date1 = new DateTime($date1);
if($date1 > $today AND $val['published'] ==1){
echo $val['published'].'-'.date('Y-m-d', strtotime($val['date1'])).'<br>';
}
if (++$i == 2) break;
}
Вот массив:
Array
(
[0] = Array
(
[MIGX_id] = 4
[date1] =2023-01-02 22:55:00
[date2] = 2023-01-16 22:56:00
[price] = <p>12121212</p>
[published] =
)
[1] = Array
(
[MIGX_id] = 3
[date1] = 2023-01-16 02:52:00
[date2] =
[price] = <p>222222</p>
[published] = 1
)
[2] = Array
(
[MIGX_id] = 1
[date1] = 2023-01-20 22:55:00
[date2] = 2023-01-31 22:56:00
[price] = <p>12121212</p>
[published] = 1
)
[3] = Array
(
[MIGX_id] = 2
[date1] = 2023-02-17 22:55:00
[date2] = 2023-02-28 03:02:00
[price] = <p>12121212</p>
[published] = 1
)
)