Methode zur Prüfung mehrdimensionaler Arrays
Rafael
- php
0 ces0 wahsaga0 Rafael0 seth_not@home0 Rafael
Wie geht ihr vor, wenn ihr mehrdimensionale Arrays prüft?
Angenommen ich speichere in einem Array Informationen.
Gereiht wird sie in dieser Art:
$info_array[$pfad][$typ_der_information][$information]
Nun könnte ich per array_key_exists() prüfen ob der jeweilige Schlüssel exisitiert und mich so bis ans Ende durchprüfen.
Da ich das aber an vielen Stellen meines Skriptes mache erledige ich dies zumeist aus komfortgründen über isset().
Nun habe ich aber entdeckt, dass nachdem ich per isset($info_array[$pfad][$typ_der_information][$information]) prüfe mir PHP im Fall der Nicht-Existenz einen solchen Schlüsselpfad anlegt und mit NULL belegt.
Ist das gewollt oder gibt es dafür eine praktikablere Variante?
(Ich weiß, ich könnte mir auch eine eigene Funktion schreiben, aber ist dieser Weg nicht ziemlich ressourcenaufwändig wenn mein Array zum Beispiel bis in die sechste Dimension geht?
Danke für Tipps!
Wie geht ihr vor, wenn ihr mehrdimensionale Arrays prüft?
Ich prüfe ein mal auf Existenz des Arrays und eines Schlüsselwertes,
sobald beides erwartet werden kann, und dann (wenn nötig) jeweils
mit array_key_exists() wann immer ein bestimmter Wert erstmals
verwendet wird.
[...] isset($info_array[$pfad][$typ_der_information][$information])
prüfe mir PHP im Fall der Nicht-Existenz einen solchen Schlüsselpfad
anlegt und mit NULL belegt.
Das Phänomen habe ich noch nicht beobachtet; sicher, daß dabei nicht
noch andere Konstrukte mit im Spiel sind?
Die Funktionen isset() und array_key_exists() unterscheiden sich im
Bezug auf Arrays lediglich darin, daß letztere nur auf Existenz des
Schlüssels testet (d.h. völlig ungeachtet des referenzierten Wertes),
während isset() sowohl bei Nicht-Existenz als auch bei einem referen-
zierten NULL-Wert 'false' zurück liefert.
Grüße
hi,
[...] isset($info_array[$pfad][$typ_der_information][$information])
prüfe mir PHP im Fall der Nicht-Existenz einen solchen Schlüsselpfad
anlegt und mit NULL belegt.Das Phänomen habe ich noch nicht beobachtet; sicher, daß dabei nicht
noch andere Konstrukte mit im Spiel sind?
Kann ich im Test auch nicht nachvollziehen - weder unter PHP 4.4.7 noch 5.2.3.
Das Array bleibt absolut unverändert - egal auf welcher "Ebene" sich bei der Abfrage mit isset der erste nicht-existente Key befindet.
gruß,
wahsaga
hallo,
ich nutze PHP 5.1.4 und habs gerade noch mal probiert. Selbes Phänomen wie beschrieben...
gudn tach!
ich nutze PHP 5.1.4 und habs gerade noch mal probiert. Selbes Phänomen wie beschrieben...
dann poste mal ein auf das wesentliche reduziertes beispiel.
prost
seth
Okay. Ihr hattet alle Recht. Letztendlich wars dann doch mein Fehler... Sorry für die Mühen.