Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich in PHP effektiv nach einem Wert in einem mehrdimensionalen Array suchen?

Wie kann ich in PHP effektiv nach einem Wert in einem mehrdimensionalen Array suchen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-21 16:52:10858Durchsuche

How Can I Effectively Search for a Value in a Multidimensional Array in PHP?

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>
<pre class="brush:php;toolbar:false">foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) &amp;&amp; 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn