phpbar.de logo

Mailinglisten-Archive

[php] Aufschluesselung multidimensionaler Arrays: key

[php] Aufschluesselung multidimensionaler Arrays: key

Oliver Kummerow naklar_(at)_altavista.net
Mon, 19 Jul 1999 05:14:00 +0200


Hallo,

was mich interessiert - also da brauche ich eine Antwort von den Profis
- ist, ob folgende Konstruktion zufaellig funktioniert oder systematisch
zwingend ist.

Anscheinend behandelt PHP mehrdimensionale Array so, dass jede mehr als
eindimensionale Wertefolge zum vorhergenden Eintrag wiederum ein Array
darstellt.

Bsp.:
Bei arr ["a"] ["a"] ["a"] ["a"]
stellt also ["a"] ["a"] ["a"] ein Array zum Eintrag ganz links dar,
["a"] ["a"] ein Array zu links ["a"] ["a"] usw.

Ich habe eine Konstruktion ueber die Funktion key gefunden, die mir ein
beliebig tief geschachteltes Array aufschluesselt und mir alle Eintraege
zurueckliefert. Bsp fuer ein 4D-Array:

arr ["a"] ["a"] ["a"] = "a"

while ( list ( $key, $val ) = each ( $arr )) 
{
echo $key  // 1. Dimension
echo key ( $val )  // 2. Dimension
echo key ( $val [ key ( $val ) ] )  // 3. Dimension
echo $val [ key ( $val ) ] [ key ( $val [ key ( $val ) ] ) ] // 4.
Dimension  
}

Ist das - mal abgesehen von der Unuebersichtlichkeit - ein Konstrukt,
das nicht nur zufaellig funktioniert dh. auch in zukuenftigen Versionen
von php erhalten bleibt?

Zugegebermassen sieht

$arr ["a"]["a"]["a"] = "a";
$k1 = key ( $arr );
$k2 = key ( $arr [$k1] );
$k3 = key ( $arr [$k1] [$k2] );
$k4 = $arr [$k1] [$k2] [$k3];

etwas uebersichtlicher aus. 


Bleibt noch die Frage, ob man die Dimensionalitaet von Arrays abfragen
kann.



Mit freundlichen Grüßen,
Oliver Kummerow
email: naklar_(at)_altavista.net



php::bar PHP Wiki   -   Listenarchive