mehrdimensionelle Arrays
bearbeitet von TSHallo 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**
~~~php
$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 Arrays um eben dieses Element gekürzt. Der assoziative Key des Originalelemnetds 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
--
es wachse der Freifunk
<http://freifunk-oberharz.de>
mehrdimensionelle Arrays
bearbeitet von TSHallo 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**
~~~php
$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 Arrays um eben dieses Element gekürzt. Der assoziative Key des Originalelemnetds 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
--
es wachse der Freifunk
<http://freifunk-oberharz.de>
mehrdimensionelle Arrays
bearbeitet von TSHallo und guten Morgen,
die Aufgabe ist gar nicht so trivial, wenn der assoziative Key erhalten bleiben soll.
Aufteilung eines Arrays in zwei getrennt nach gerader und ungerader **Position** im Array:
**Position** != **Key**
~~~php
$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 Arrays um eben dieses Element gekürzt. Der assoziative Key des Originalelemnetds 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
--
es wachse der Freifunk
<http://freifunk-oberharz.de>