Mehrdimensionale Array-Suche mit in_array()
Die Funktion in_array() eignet sich hervorragend zur Überprüfung der Existenz eines Werts innerhalb eines linearen Arrays. Bei mehrdimensionalen Arrays ist seine Funktionalität jedoch unzureichend. Dieser Artikel befasst sich mit den Einschränkungen von in_array() in mehrdimensionalen Szenarien und stellt eine rekursive Lösung vor.
Einschränkungen von in_array() mit mehrdimensionalen Arrays
$ a = array("Mac", "NT", "Irix", "Linux");<br>if (in_array("Irix", $a)) echo "Got Irix"; // Funktioniert<br>
Im Gegensatz dazu führt die Anwendung von in_array() auf ein mehrdimensionales Array, wie unten gezeigt, zu ungenauen Ergebnissen:
$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>if (in_array("Irix", $b)) echo "Got Irix"; // Schlägt fehl<br>
Rekursive Lösung für die mehrdimensionale Array-Suche
Um effektiv nach einem Wert innerhalb eines mehrdimensionalen Arrays zu suchen, ist ein rekursiver Ansatz erforderlich erforderlich. Der folgende Codeausschnitt definiert eine benutzerdefinierte Funktion für diesen Zweck:
<br>function in_array_r($needle, $haystack, $strict = false) {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">foreach ($haystack as $item) { if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) { return true; } } return false;
}
Verwendung
Die Funktion in_array_r() wird wie folgt verwendet:
$b = array(array("Mac", "NT"), array("Irix", "Linux"));<br>echo in_array_r("Irix", $b) ? 'found': 'nicht gefunden';<br>
Diese Lösung ermöglicht effiziente und genaue Suchvorgänge für Werte in mehrdimensionalen Arrays.
Das obige ist der detaillierte Inhalt vonWie kann ich in PHP effektiv nach einem Wert in einem mehrdimensionalen Array suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!