Ich arbeite mit der Mailchimp API im Moment, ich habe eine Liste von Kampagnen, die ausgeführt wurden oder ausgeführt werden sollen, und ich möchte den Link für die zuletzt durchgeführte Kampagne. Wie würde ich das Attribut "send_time" vergleichen, um das aktuellste und das zugehörige übergeordnete Objekt zu finden?Array von Objekten Auswahl von Objekt basierend auf Attributwert
Die Kampagnen-Array wie folgt aussehen,
{
"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"
}
]
}
Also in diesem oben Array, hat das letzte Objekt die neueste Sendezeit, wie würde ich dies beurteilen zu können, und dann das Objekt greifen? Ich habe eine halb Lösung, aber es scheint langatmig.
<?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;
}
}
?>
Obwohl, was Sie haben eine ist Ganz klare Lösung, Sie können versuchen, Ihr Objekt mit 'usort' durch' date_send' zu sortieren und dann das erste Element Formular sortierte Ergebnis zu nehmen. –
@Anant * "Bitte stimmen Sie die Antwort zu.Thanks" * - Wenn die Person (oder jemand anderes in der Angelegenheit) der Meinung ist, dass Ihre Antwort zusätzlich zu dem, was akzeptiert wurde, eine zusätzliche Verbesserung verdient, dann ist dies ihre Entscheidung. Das ist "kicking for points". Bist du "das" hungrig auf + rep? –
@ Fred-ii- da er meine Antwort markiert hat, zeige ich nur, dass er auch abstimmen kann. Ich denke, dass ich mein Englisch verbessern muss. Sorry –