Я работаю с API Mailchimp на данный момент, у меня есть список кампаний, которые были запущены или должны быть запущены, и я хочу получить ссылку на недавно проведенной кампании. Как я могу сравнить атрибут «send_time», чтобы найти самый последний и связанный с ним родительский объект?массив объектов, выбирающих объект на основе значения атрибута
Массив кампании выглядит так,
{
"campaigns": [
{
"id": 1,
"type": "regular",
"status": "save",
"send_time": ""
},
{
"id": 2,
"type": "regular",
"status": "sent",
"send_time": "2015-11-11T14:42:58+00:00"
},
{
"id": 3,
"type": "regular",
"status": "sent",
"send_time": "2016-01-01T14:42:58+00:00"
},
{
"id": 4,
"type": "regular",
"status": "sent",
"send_time": "2016-06-12T14:42:58+00:00"
}
]
}
Так что в этом массиве выше, конечный объект имеет самый последний send_time, как бы я оцениваю это, а затем захватить этот объект? У меня полу-решение, но оно кажется длинным.
<?php
//Build an array of send_times
$dates = [];
foreach($result['campaigns'] as $campaign) {
$dates[$campaign['id']] = $campaign['send_time'];
}
//Get the most recent date
$mostRecent = 0;
foreach($dates as $k => $v) {
$curDate = strtotime($v);
if($curDate > $mostRecent) {
$mostRecent = $curDate
$currentId = $k;
}
}
//Get the object
foreach($results['campaigns'] as $campaign) {
if($campaign['id'] == $currentId) {
$c = $campaign;
}
}
?>
Хотя то, что у вас есть это достаточно четкое решение, вы можете попробовать отсортировать свой объект с помощью 'usort' на' date_send', а затем получить отсортированный результат первой формы. –
@Anant * «пожалуйста, проголосуйте за ответ тоже.». * Если человек (или кто-то еще в этом отношении) чувствует, что ваш ответ заслуживает дополнительного вознаграждения поверх того, что было принято, то это их решение. Это «ногами за очки». Вы «что» голодны для + репутации? –
@ Fred-ii-, так как он отметил мой ответ, поэтому я просто указываю, что он тоже может голосовать. Я думаю, что мне нужно улучшить свой английский. Sorry –