PHP - Rekursiver Multidimension Array-Iterator

8

Ich versuche, eine rekursive Array-Iterator-Funktion zu schreiben, in der die Funktion eine Ergebnismenge aller Mengen zurückgibt, die durch '$ nadel' spezifiziert sind. Wo $ Nadel = Taste

Hier ist meine Funktion:

%Vor%

Aber ich bekomme nicht alle Ergebnisse zurück und erhalte stattdessen ein paar leere Ergebnisse, wenn ich nicht !empty($value) vorschlage, obwohl das Eingabearray keine leeren Mengen enthält. Was mache ich falsch?

    
dudemanbearpig 31.10.2013, 14:37
quelle

3 Antworten

16

Sie müssen das Rad nicht neu erfinden, da PHP standardmäßige Rekursive Iterator API hat:

%Vor%

- Da Sie nach dem Wert mit dem Schlüssel suchen, wird $value im allgemeinen Fall den gesamten Unterabschnitt enthalten.

Wenn Sie dies in Ihrer eigenen rekursiven Funktion tun möchten, hier ist eins:

%Vor%     
Alma Do 31.10.2013, 14:47
quelle
1

Eine feinkörnigere Kontrolle ist vielleicht möglich mit true (tm) rekursivem Array-Traversal über RecursiveIterator interface und einigen Schlüsselfiltern und Array-Konvertierungsfunktionen:

%Vor%

Bereitstellen eines beispielhaften Ergebnisses als:

%Vor%

Vollständiges Codebeispiel ( Demo ):

%Vor%     
hakre 31.10.2013 15:15
quelle
0

Eine kleine Modifikation Ihrer Konstruktion:

$holder = recursive($needle, $value, $holder);

Ay?

    
matthias 31.10.2013 14:58
quelle

Tags und Links