Heim > Artikel > Backend-Entwicklung > So implementieren Sie die Array-Deduplizierung in PHP
So implementieren Sie die Array-Deduplizierung in PHP: 1. Verwenden Sie die Methode array_unique, um Array-Elemente zu deduplizieren. 2. Verwenden Sie die Methode array_flip, um zu deduplizieren.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
php Schnelle Deduplizierung von Array-Elementen
1. Verwenden Sie die Methode array_unique, um
Deduplizierung von Array-Elementen Im Allgemeinen verwenden wir die Methode array_unique, mit der Elemente in einem Array dedupliziert werden können.
<?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 'unique count:'.count($arr).'<br>'; echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>'; echo 'use memory:'.getUseMemory(); /** * 获取使用内存 * @return float */ function getUseMemory(){ $use_memory = round(memory_get_usage(true)/1024,2).'kb'; return $use_memory; } /** * 获取microtime * @return float */ function getMicrotime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec; } ?>
unique count:99 run time:653.39303016663ms use memory:5120kbhat einen Schlüssel. Die Werteaustauschmethode ist array_flip. Wir können diese Methode verwenden, um Duplikate zu entfernen. Aufgrund des Schlüsselwertaustauschs werden die ursprünglichen doppelten Werte 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 'unique count:'.count($arr).'<br>'; echo 'run time:'.(float)(($endtime-$starttime)*1000).'ms<br>'; echo 'use memory:'.getUseMemory(); /** * 获取使用内存 * @return float */ function getUseMemory(){ $use_memory = round(memory_get_usage(true)/1024,2).'kb'; return $use_memory; } /** * 获取microtime * @return float */ function getMicrotime(){ list($usec, $sec) = explode(' ', microtime()); return (float)$usec + (float)$sec; } ?>
unique count:99 run time:12.840032577515ms use memory:768kbBei Verwendung der Methode array_flip zum Deduplizieren beträgt die Laufzeit etwa 18 ms und die Speichernutzung beträgt etwa 2 m.Daher ist die Laufzeit bei Verwendung der Methode array_flip zur Deduplizierung 98 % kürzer als bei Verwendung der Methode array_unique und der Speicher Die Nutzung wird um 4/5 reduziert; Empfohlenes Lernen: „
PHP-Video-Tutorial
》Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Array-Deduplizierung in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!