Heim  >  Artikel  >  Backend-Entwicklung  >  So durchsuchen Sie ein Array in PHP

So durchsuchen Sie ein Array in PHP

PHPz
PHPzOriginal
2023-04-20 15:07:181845Durchsuche

PHP ist eine häufig verwendete serverseitige Programmiersprache, die es Entwicklern ermöglicht, verschiedene Datentypen einfach zu verarbeiten und zu betreiben. Einer der am häufigsten verwendeten Datentypen sind Arrays. In PHP ist das Durchsuchen eines Arrays ein sehr einfacher und häufiger Vorgang. Als nächstes wollen wir untersuchen, wie man Arrays in PHP durchsucht.

1. Einführung in die Array-Suche in PHP

In PHP bezieht sich ein Array auf eine Reihe geordneter Elemente, die in Form von Schlüssel-Wert-Paaren gespeichert werden können, wobei jedem Element ein Schlüssel und ein entsprechender Wert zugeordnet sind. Wenn Sie diese Array-Elemente finden müssen, müssen Sie die Array-Suche verwenden.

Array-Suche bezieht sich auf die Suche nach einem bestimmten Wert oder Schlüssel in einem vorhandenen Array, um festzustellen, ob der Zielwert oder Schlüssel im Array vorhanden ist oder nicht. PHP bietet viele Array-Suchmethoden, einschließlich linearer Suche, binärer Suche, rekursiver Suche usw.

2. Lineare Suche von Arrays in PHP

Die einfachste Suchmethode in PHP ist die lineare Suche, bei der der Zielschlüssel oder -wert durch Durchlaufen des gesamten Arrays gefunden wird. Die Grundidee der linearen Suche besteht darin, den Zielwert und den Schlüssel nacheinander zu vergleichen, beginnend mit dem ersten Element des Arrays. Wenn der Zielwert oder -schlüssel nicht gefunden wird, wird der entsprechende Index oder Wert zurückgegeben Wird nach dem Durchlaufen des gesamten Arrays gefunden, bedeutet die Rückgabe von „false“, dass die Suche fehlgeschlagen ist.

Das Folgende ist eine Beispielcode-Implementierung:

$arr = array("apple", "orange", "banana", "grape");  
$target = "banana";
for($i=0;$i<count($arr);$i++){
if($arr[$i] == $target){
echo "目标值 " . $target . " 在数组中的索引是 " . $i;
break;
}
}

Im obigen Code definieren wir ein Array $arr und verwenden dann eine Schleife, um jedes Element im Array zu durchlaufen. Wenn der Zielwert gefunden wurde, verwenden Sie die „echo“-Anweisung, um den Index des Zielwerts im Array auszugeben, und verwenden Sie dann die „break“-Anweisung, um die Schleife zu beenden.

3. Binäre Suche von Arrays in PHP

Wenn das Array in PHP geordnet ist, können Sie die binäre Suche für eine schnellere Suche verwenden. Die binäre Suche ist ein vergleichsbasierter Suchalgorithmus und eine typische Anwendung des „Teile-und-herrsche“-Denkens.

Die Grundidee der binären Suche besteht darin, das geordnete Array in zwei Teile zu teilen, einen Wert in der Mitte des Arrays zu finden und das Ziel mit dem Wert zu vergleichen. Wenn das Ziel kleiner als der Wert ist, wird rekursiv gesucht die erste Hälfte (linke Seite); wenn das Ziel größer als dieser Wert ist, wird in der zweiten Hälfte (rechte Seite) rekursiv gesucht; wenn das Ziel diesem Wert entspricht, wird der entsprechende Index oder Wert zurückgegeben.

Das Folgende ist eine Beispielcode-Implementierung:

function binary_search($arr,$target){
$low = 0;
$high = count($arr) - 1;
while($low <= $high) {
$middle = intval(($low + $high)/2);
if($arr[$middle] == $target) {
return $middle;
} elseif ($arr[$middle] > $target) {
$high = $middle -1;
} else {
$low = $middle + 1;
}
}
return -1;
}
$arr = array(1,3,5,7,9,11);
$target = 7;
echo "目标值 " . $target . " 在数组中的索引是 " . binary_search($arr,$target);

Im obigen Code definieren wir eine Funktion „binary_search“, die ein geordnetes Array und einen Zielwert als Parameter empfängt und den Index des Zielwerts im Array zurückgibt. In der Funktion werden Schleifen und bedingte Anweisungen verwendet, um den binären Suchalgorithmus zu implementieren.

4. Rekursive Suche von Arrays in PHP

Die rekursive Suche ist eine einfache, aber relativ ineffiziente Suchmethode. Sie durchläuft das gesamte Array, indem sie ihre eigene Funktion rekursiv aufruft und den Zielwert oder Schlüssel findet. Die Grundidee der rekursiven Suche ist: Wenn das Array leer ist, geben Sie „false“ zurück. Andernfalls prüfen Sie, ob das erste Array-Element der Zielwert oder -schlüssel ist, und geben Sie andernfalls den entsprechenden Index oder Wert zurück seine eigene Funktion rekursiv, um die verbleibenden Array-Elemente außer dem ersten Element zu verarbeiten.

Das Folgende ist eine Beispielcode-Implementierung:

function search($arr,$target) {
if(empty($arr)){
return false;
}
if($arr[0] == $target){
return 0;
} else {
$index = search(array_slice($arr,1),$target);
if($index === false) {
return false;
} else {
return $index+1;
}
}
}
$arr = array("apple", "orange", "banana", "grape");  
$target = "orange";
echo "目标值 " . $target . " 在数组中的索引是 " . search($arr,$target);

Im obigen Code definieren wir eine Funktionssuche, die ein Array und einen Zielwert als Parameter empfängt und den Index des Zielwerts im Array zurückgibt. Die Funktion verwendet einen rekursiven Aufruf ihrer eigenen Funktion, um das gesamte Array zu durchlaufen und den Zielwert oder Schlüssel zu finden.

5. Zusammenfassung

Das Obige ist eine Einführung in die Methode zum Durchsuchen von Arrays in PHP. Wir können den geeigneten Suchalgorithmus entsprechend den unterschiedlichen Anforderungen auswählen: Für ungeordnete Arrays können wir eine lineare Suche oder eine rekursive Suche wählen, für geordnete Arrays können wir eine binäre Suche wählen, um die Sucheffizienz zu verbessern. In der tatsächlichen Entwicklung ist es sehr wichtig, eine Methode auszuwählen, die der tatsächlichen Situation entspricht, und die Auswirkungen auf die Leistung sind ebenfalls sehr groß.

Das obige ist der detaillierte Inhalt vonSo durchsuchen Sie ein Array in PHP. 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