Mailinglisten-Archive |
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