Пара вещей - ваш тест использует поля, которые не определены, я предполагаю, что вы хотите вычислить его по фактическому полю даты ($actualDate
). Я также добавил пункт о том, что дата окончания совпадает, если дата окончания в записи empty()
или >=
текущая дата (я также немного изменил вывод).
Другая вещьявляется то, что ваши данные неверны для Karl
для вывода, я предполагаю, что вы имели в виду данные имеют конечную дату '2019-11-12'
...
'Karl' => [
'date' => ['start' => '2019-11-11','end' => '2019-11-12'],
'statement' => 'fresh'
],
И код ...
$actualDate = date("Y-m-d");
foreach($personas as $name => $person) {
if ($person['date']['start'] <= $actualDate &&
(empty($person['date']['end']) || $person['date']['end'] >= $actualDate )){
echo $name.': '.$person['statement'].PHP_EOL;
}
}