PHP - Finden übergeordneten Schlüssel von array
Ich versuche einen Weg zu finden, um den Rückgabewert in einem array der übergeordneten Schlüssel.
Beispielsweise aus dem array unten, würde ich mag, um herauszufinden, die Eltern key, wo $array['id'] == "0002".
Das übergeordnete Schlüssel ist offensichtlich, da es hier definiert (es wäre 'Produkte'), aber normalerweise würde es dynamisch sein, daher das problem. Die 'id' und den Wert 'id' ist aber bekannt.
[0] => Array
(
[data] =>
[id] => 0000
[name] => Swirl
[categories] => Array
(
[0] => Array
(
[id] => 0001
[name] => Whirl
[products] => Array
(
[0] => Array
(
[id] => 0002
[filename] => 1.jpg
)
[1] => Array
(
[id] => 0003
[filename] => 2.jpg
)
)
)
)
)
InformationsquelleAutor Jay Are | 2010-03-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein wenig roh Rekursion, aber es sollte funktionieren:
$parent
argument, das Sie verwenden. Ist so oder so besser?würde wahrscheinlich funktionieren auch gut. Ich muss zugeben, ich bin nicht viel von einem
static
Benutzer. 🙂 Es würde beseitigen die Notwendigkeit, entlang die extra variable. OTOH, in der oben genannten Funktion können Sie einen "default" Eltern... Entweder man ist in Ordnung, denke ich. 🙂Danke, ich verstehe die Vorteile der Methode. +1
Ich bin neugierig, gibt es eine bessere Datenstruktur zu verwenden, anstatt ein array, wenn man diese brauchen? Es ist schon eine lange Zeit, da hatte ich einige gute Programmier-Ausbildung, würde aber eine verkettete Liste besser funktionieren? So dass Sie nicht haben, um Suche über ein array jedes mal, wenn Sie eine bestimmte übergeordnete (denken Sie an die Rückgabe jedes Elternteil ein Kind bis zum root). Obwohl, ich habe noch nicht wirklich verwenden von verknüpften Listen in PHP. Vielleicht sind Sie nicht so einfach zu tun?
InformationsquelleAutor deceze
Da haben Sie eine Struktur entweder von einer BFS oder DFS kann es tun. Da die Struktur der variable eine rekursive Lösung gut funktionieren würde. Schicken Sie einfach eine Wache, wenn Sie den Wert gefunden haben, dann den Schlüssel zurück in die Anrufer.
InformationsquelleAutor Ignacio Vazquez-Abrams
InformationsquelleAutor chla