Die Funktion in_array() ist ein praktisches Werkzeug zum Überprüfen, ob ein Wert in einem Array vorhanden ist. Sein Nutzen erstreckt sich jedoch nur auf eindimensionale Arrays. Beim Umgang mit mehrdimensionalen Arrays ist ein anderer Ansatz erforderlich.
Um festzustellen, ob ein Wert in einem mehrdimensionalen Array vorhanden ist, kann eine rekursive Funktion verwendet werden. Hier ist ein Beispiel für eine solche Funktion:
def in_array_r(needle, haystack, strict = False): for item in haystack: if ((strict ? item === needle : item == needle) or (is_array(item) && in_array_r(needle, item, strict))) { return True } return False
Die Funktion benötigt drei Argumente: die Nadel, nach der gesucht werden soll, den Heuhaufen, in dem gesucht werden soll, und ein optionales striktes Flag, das angibt, ob Werte streng verglichen werden sollen (d. h. Typ und Wert).
Um die rekursive Funktion zu nutzen, rufen Sie sie einfach mit der gewünschten Nadel auf und Heuhaufen:
$b = array(array("Mac", "NT"), array("Irix", "Linux")); echo in_array_r("Irix", $b) ? 'found' : 'not found';
Dies gibt „gefunden“ aus, was darauf hinweist, dass „Irix“ im mehrdimensionalen Array $b vorhanden ist.
Während die rekursive Funktion vorhanden ist Da es sich um eine vielseitige Lösung handelt, gibt es auch andere Möglichkeiten, mehrdimensional nach Werten zu suchen Arrays:
Letztendlich hängt die beste Vorgehensweise von den spezifischen Anforderungen der Anwendung ab. Wenn Geschwindigkeit eine Rolle spielt, kann die rekursive Funktion eine geeignete Wahl sein. Andernfalls können die alternativen Methoden eine einfachere oder robustere Lösung bieten.
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP effizient nach einem Wert in einem mehrdimensionalen Array suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!