У меня есть array
и используя foreach
петли я пытаюсь проверить, если dinner_date
соответствует предыдущему индексу dinner_date
и если они не я назначаю yes
к переменному называется $newDate
Это то, что вывод выглядит линиюНевозможно сравнить две дату
array:4 [▼
0 => array:3 [▼
"request_id" => "48"
"dinner_date" => "2016-05-16T10:00:00"
"new_date" => "no"
]
1 => array:3 [▼
"request_id" => "51"
"dinner_date" => "2016-05-16T10:00:00"
"new_date" => "no"
]
2 => array:3 [▼
"request_id" => "50"
"dinner_date" => "2016-05-27T10:00:00"
"new_date" => "no"
]
3 => array:3 [▼
"request_id" => "52"
"dinner_date" => "2016-05-27T10:00:00"
"new_date" => "no"
]
]
Это мой foreach
петля
$dinnerDetails = array();
$lastDinnerDate = '';
$newDate = '';
foreach ($invitations as $invitation) {
$lastDinnerDate = $invitation['dinner_date'];
if ($invitation['dinner_date'] > $lastDinnerDate) {
$newDate = 'yes';
} else {
$newDate = 'no';
}
$dinnerDetails[] = array(
'request_id' => $invitation['request_id'],
'dinner_date' => $invitation['dinner_date'],
'new_dinner' => $newDate
);
}
так как вы можете видеть в индексе 2
из массив, он говорит new_date => no
, он должен быть фактически yes
, потому что dinner_date
этого показателя отличается от dinner_date
указанного выше индекса.
Так что я делаю неправильно здесь?
в вашем случае они оба одинаковы, вам нужно сохранить '$ lastDinnerDate = $ invite ['dinner_date'];' после условия. –
Назначить '$ lastDinnerDate = $ invite ['dinner_date'];' как самое последнее действие в цикле, а не как первое –
Какой формат даты вашего обеда? –