dedlfix: array durchsuchen

Beitrag lesen

echo $begrüßung;

Ich durchsuche eine tiefere Ebene, also der name würde bei "array[i][j]" in "[j]" stehen, aber das funktioniert nicht. Ich hab mir einfach eine Schleife gebaut, die jedes Element durchgeht und prüft.

Es gibt bei PHP-Arrays keine Ebenen. Auch gibt es kein "mehrdimensional". Die Elemente eines Array in PHP können einfache (skalare) und zusammengesetzte Typen (Array, Object) aufnehmen. Damit entsteht eine Baumstruktur.

array -+- 0 => integer
       +- 1 => string
       +- 2 => array -+- 0 => string
       |              +- 1 => array -+- key1 => string
       |              |              +- key2 => string
       |              +- 2 => float
       |
       +- 3 => array -+- 0 => boolean
                      +- 1 => integer
                      +- 2 => string
                      +- 3 => string
                      +- 4 => object -+- var1 => ...
                                      +- var2 => ...

Wenn du dieses Prinzip verstanden hast, weißt du auch, warum du nicht _einfach_ in "einer tieferen Ebene" suchen kannst.

Man kann durch das äußere Array durchgehen (foreach) und beim Auftreten eines weiteren Arrays in dieses verzweigen usw. Wenn man die Struktur kennt und sie nicht so kunterbunt wie in meinem Beispiel ist, dann kann man sich die Rekursion sparen.

Viele Wege führen nach Rom, so auch beim Suchen eins Wertes in einem Array mit nicht nur skalaren Werten. Auf der Handbuchseite zu den Array Functions gibt es Funktionen, die dafür - neben foreach - verwendet werden können (z.B. array_walk, array_reduce). Doch zunächst solltest du versuchen, mit foreach dein Array zu durchlaufen.

echo "$verabschiedung $name";