Heim  >  Artikel  >  Backend-Entwicklung  >  So erzielen Sie einen schnellen Deduplizierungseffekt von PHP-Array-Elementen

So erzielen Sie einen schnellen Deduplizierungseffekt von PHP-Array-Elementen

jacklove
jackloveOriginal
2018-06-09 09:52:431870Durchsuche

1. Verwenden Sie die Methode array_unique zum Deduplizieren

Um Array-Elemente zu deduplizieren, verwenden wir im Allgemeinen die Methode array_unique.

<?php$arr = array(1,1,2,3,3,3,4,4,5,6,6,7,8,8,9,9,9);$arr = array_unique($arr);$arr = array_values($arr);
print_r($arr);?>

Ausgabe:

Array(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
    [5] => 6
    [6] => 7
    [7] => 8
    [8] => 9)

Nach der Deduplizierung sind die Schlüsselwerte nicht in der richtigen Reihenfolge. Sie können array_values ​​verwenden, um die Schlüsselwerte neu anzuordnen.

2. Verwenden Sie die Methode array_unique, um die Duplizierungseffizienz zu entfernen.

<?php$arr = array();// 创建100000个随机元素的数组for($i=0; $i<100000; $i++){    $arr[] = mt_rand(1,99);
}// 记录开始时间$starttime = getMicrotime();// 去重$arr = array_unique($arr);// 记录结束时间$endtime = getMicrotime();$arr = array_values($arr);echo &#39;unique count:&#39;.count($arr).&#39;<br>&#39;;echo &#39;run time:&#39;.(float)(($endtime-$starttime)*1000).&#39;ms<br>&#39;;echo &#39;use memory:&#39;.getUseMemory();/**
 * 获取使用内存
 * @return float
 */function getUseMemory(){
    $use_memory = round(memory_get_usage(true)/1024,2).&#39;kb&#39;;    return $use_memory;
}/**
 * 获取microtime
 * @return float
 */function getMicrotime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

eindeutige Anzahl:99
Laufzeit:653,39303016663 ms
Speicher verwenden:5120 KB

Verwenden Sie die Methode array_unique, um Duplikate zu entfernen. Die Laufzeit beträgt etwa 650 ms und die Speichernutzung beträgt etwa 5 m

3. Schnellere Array-Deduplizierungsmethode

php verfügt über eine Schlüsselwert-Austauschmethode array_flip. Aufgrund des Schlüsselwertaustauschs werden die ursprünglichen Duplikatwerte zum gleichen Schlüssel.
Führen Sie dann erneut einen Schlüsselwertaustausch durch und tauschen Sie die Schlüssel und Werte zurück, um die Deduplizierung abzuschließen.

<?php$arr = array();// 创建100000个随机元素的数组for($i=0; $i<100000; $i++){    $arr[] = mt_rand(1,99);
}// 记录开始时间$starttime = getMicrotime();// 使用键值互换去重$arr = array_flip($arr);$arr = array_flip($arr);// 记录结束时间$endtime = getMicrotime();$arr = array_values($arr);echo &#39;unique count:&#39;.count($arr).&#39;<br>&#39;;echo &#39;run time:&#39;.(float)(($endtime-$starttime)*1000).&#39;ms<br>&#39;;echo &#39;use memory:&#39;.getUseMemory();/**
 * 获取使用内存
 * @return float
 */function getUseMemory(){
    $use_memory = round(memory_get_usage(true)/1024,2).&#39;kb&#39;;    return $use_memory;
}/**
 * 获取microtime
 * @return float
 */function getMicrotime(){
    list($usec, $sec) = explode(&#39; &#39;, microtime());    return (float)$usec + (float)$sec;
}?>

Eindeutige Anzahl:99
Laufzeit:12,840032577515ms
Speicher verwenden:768kb

Verwenden Sie die Methode array_flip, um Duplikate zu entfernen. Die Laufzeit dauert ca. 18ms, die Speichernutzung beträgt ca. 2m

, daher ist die Verwendung der array_flip-Methode zum Deduplizieren der Laufzeit kürzer als die Verwendung der array_uniqueMethode 98 %, Speichernutzung reduziert4/5;

In diesem Artikel wird erläutert, wie Sie den schnellen Deduplizierungseffekt von PHP-Array-Elementen erzielen Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

So finden Sie Array-Elemente über PHP, um die Effizienz zu verbessern

Über den strengen MySQL-Modus Erläuterung des strengen Modus

Erklärung von Problemen, die Anfänger leicht übersehen, wenn sie „Exploate“ zum Teilen von Zeichenfolgen in PHP verwenden

Das obige ist der detaillierte Inhalt vonSo erzielen Sie einen schnellen Deduplizierungseffekt von PHP-Array-Elementen. 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