Heim  >  Artikel  >  Backend-Entwicklung  >  So verbessern Sie die Effizienz beim Auffinden von Array-Elementen in PHP

So verbessern Sie die Effizienz beim Auffinden von Array-Elementen in PHP

墨辰丷
墨辰丷Original
2018-05-23 09:27:211617Durchsuche

In diesem Artikel wird hauptsächlich vorgestellt, wie die Effizienz der Suche nach Array-Elementen in PHP verbessert werden kann, was einen guten Referenzwert hat. Interessierte Freunde können darauf verweisen, ich hoffe, es wird für alle hilfreich sein.

1.php in_array-Methodenbeschreibung

PHP findet, ob ein Array-Element vorhanden ist. Im Allgemeinen wird die in_array-Methode verwendet.

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Parameterbeschreibung:

Nadel

Der zu suchende Wert. Wenn „nadel“ eine Zeichenfolge ist, wird beim Vergleich die Groß-/Kleinschreibung beachtet.

Heuhaufen

Array zum Vergleich verwendet

streng

Wenn der Wert des dritten Parameters strict TRUE ist, prüft die Funktion in_array() auch, ob der Nadeltyp mit dem in Haystack übereinstimmt

Rückgabewert

Gibt TRUE zurück, wenn die Nadel gefunden wird, andernfalls wird FALSE zurückgegeben.

2. Effizienz der in_array-Elementsuche

Wenn der Vergleichsarray-Heuhaufen groß ist, ist die in_array-Effizienz sehr niedrig

Beispiel: Verwenden Sie in_array, um 1000 Vergleiche für ein Array mit 100.000 Elementen durchzuführen Verwenden Sie

in_array

, um zu bestimmen, ob ein Element 1000 Mal in einem Array von 100.000 Elementen vorhanden ist. Die Laufzeit dauert etwa

3. Methode zur Verbesserung der Effizienz beim Auffinden von Elementen

Wir können zuerst

array_flip für den Schlüsselwertaustausch verwenden und dann isset verwenden Methode zum Bestimmen des Elements Ob vorhanden, dies kann die Effizienz verbessern.

Beispiel: Verwenden Sie array_flip, um zuerst den Schlüsselwertaustausch durchzuführen, verwenden Sie dann die Isset-Methode zur Beurteilung und vergleichen Sie 1000 Mal in einem Array mit 100.000 Elementen

<?php
$arr = array();

// 创建10万个元素的数组
for($i=0; $i<100000; $i++){
 $arr[] = $i;
}

// 记录开始时间
$starttime = getMicrotime();

// 随机创建1000个数字使用in_array比较
for($j=0; $j<1000; $j++){
 $str = mt_rand(1,99999);
 in_array($str, $arr);
}

// 记录结束时间
$endtime = getMicrotime();

echo &#39;run time:&#39;.(float)(($endtime-$starttime)*1000).&#39;ms<br>&#39;;
/**
 * 获取microtime
 * @return float
 */
function getMicrotime(){
 list($usec, $sec) = explode(&#39; &#39;, microtime());
 return (float)$usec + (float)$sec;
}
?>

Laufzeit:

1,2781620025635msVerwenden Sie array_flip

und

isset

um das Element zu bestimmen Existiert es, 1000-maliger Vergleich in einem Array von 100.000 Elementen, die Laufzeit dauert etwa

1,2 ms

Für den Vergleich großer Arrays verwenden Sie also

array_flip und

isset sind viel effizienter als in_array.

Verwandte Empfehlungen: php Array-ElementeSchnelle Deduplizierungsmethode

So verwenden Sie array_sum(), um die Summe von

Array-Element

Werten zu berechnen

Zugriff auf Array-Element
in PHP doppelte Anführungszeichen Umgang mit Fehlerberichten


Das obige ist der detaillierte Inhalt vonSo verbessern Sie die Effizienz beim Auffinden von Array-Elementen 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