Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die Array-Deduplizierung in PHP

So implementieren Sie die Array-Deduplizierung in PHP

藏色散人
藏色散人Original
2022-01-12 10:17:0311335Durchsuche

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.

So implementieren Sie die Array-Deduplizierung in PHP

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 &#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;
}
?>
unique count:99
run time:653.39303016663ms
use memory:5120kb
hat 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 &#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;
}
?>
unique count:99
run time:12.840032577515ms
use memory:768kb
Bei 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!

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