Hallo und guten Morgen,
die Aufgabe ist gar nicht so trivial, wenn der assoziative Key erhalten bleiben soll.
Aufteilung eines Arrays in zwei oder mehr getrennte nach Position im Array:
Position != Key
$Arr1 = array();
$Arr2 = array();
## ...
# $ArrN = array();
while (count($latest_events) > 0)
{
if (count($latest_events) > 0) $Arr1[key($latest_events)] = array_shift($latest_events);
if (count($latest_events) > 0) $Arr2[key($latest_events)] = array_shift($latest_events);
## und so weiter für N Zielarrays.
# if (count($latest_events) > 0) $ArrN[key($latest_events)] = array_shift($latest_events);
}
Ich kann es nicht ausprobieren hier, aber zumindest kurz erklären, was mMn passiert:
Es wird dem Originalarray gearbeitet.
Solange dieses Elemente enthält, wird die Schleife durchlaufen.
Der Positionszeiger im Originalarray zeigt immer auf das erste Element.
Bei jedem Schleifendurchlauf wird dem jeweiligen Zielarray das erste Element des Originalarrays zugewiesen und dieses Array um eben dieses Element gekürzt. Der assoziative Key des Originalelements wird dabei ins Ziel mit übernommen.
Da man nicht weiß, wieviele Elemente das Originalarray hatte, wird vor jeder Übertragung in die Zielarrays nochmals geprüft, ob überhaupt noch ein Element vorhanden ist.
Ich hoffe, es funktioniert so.
Grüße
TS