Für die Suche nach Arrays in PHP kann die sequentielle Suche oder die binäre Suche verwendet werden. Unter diesen ist die sequentielle Suche relativ einfach, d. h. ein Vergleich und eine Suche nacheinander. Der Nachteil liegt aber auch auf der Hand. Wenn das gesuchte Element zufällig am letzten liegt, ist die Anzahl der Schleifen zu groß.
Durchsuchen Sie das Array nacheinander, um zu bestätigen, ob ein Element vorhanden ist, und kehren Sie zurück das Element, wenn es Standortinformationen enthält. Flag-Informationen können festgelegt werden. Der Anfangswert ist „false“. Suchen Sie den direkten Ausgabeort und setzen Sie das Flag auf „true“. Wenn das Schleifenende-Flag immer noch falsch ist, wurde es nicht gefunden.
<br/>
$arr =[123,19,38,29,10,34]; function search($arr,$target){ // 参数:目标数组 目标元素 foreach ($arr as $key => $value) { if($value == $target){ return $key.'<br>'; } } return false; }
Gehen Sie davon aus, dass das Array in streng aufsteigender Reihenfolge ist. Ist das Zielelement größer als der Mittelwert, wird der Suchbereich nach rechts um die Hälfte reduziert. Ist der Wert des Zielelements kleiner als der Wert des mittleren Elements, wird der Suchbereich nach links um die Hälfte reduziert.
function half_search($arr,$target){ // 定义出初始的第一个,最后一个元素的下标范围 $len = count($arr); $left =0; $right =$len -1; // 循环查找 // 范围不断的移动 ,必须满足一个条件 // 最左侧元素的下标 小于等于右侧元素的下标 while($left <= $right){ // 中间元素的下标 $middle = floor(($left + $right) /2); // 目标元素与中间元素进行比较 if($target == $arr[$middle]){ return $middle; } // 如果目标元素小于中间元素 // 范围向左缩小一半 if($target < $arr[$middle]){ $right =$middle-1 ; } // 如果目标元素大于中间元素 // 范围向右缩小一半 if($target > $arr[$middle]){ $left = $middle + 1; } } // 循环终止了 // 没有找到 return false; }
Verwandte Empfehlungen:
PHP-Binärmethode zum Implementieren eines Tutorials zur Array-Suchfunktion
PHP-Array-Suchtastenfunktionen
Zusammenfassung der PHP-Array-Suchfunktion
Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung des einfachen PHP-Array-Suchalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!