Maison > Article > développement back-end > Comment supprimer rapidement les éléments en double des tableaux php
Cet article présente principalement la méthode de déduplication rapide des éléments d'un tableau PHP, qui a une bonne valeur de référence. Jetons un coup d'œil avec l'éditeur ci-dessous
1 Utilisez la méthode array_unique pour dédupliquer
Pour dédupliquer les éléments du tableau, nous utilisons généralement la méthode array_unique, en utilisant This. La méthode peut supprimer les éléments en double du tableau.
<?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); ?>
Sortie :
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
Après la déduplication, la valeur clé Si ce n'est pas dans l'ordre, vous pouvez utiliser array_values pour réorganiser les valeurs clés.
2. Utilisez la méthode array_unique pour supprimer l'efficacité de la duplication
<?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; } ?>
compte unique : 99
run time :653.39303016663ms
use memory:5120kb
Utilisez la méthode array_unique pour supprimer les doublons. Le temps d'exécution prend environ 650 ms et l'utilisation de la mémoire est d'environ . 🎜>5m
3. Méthode de déduplication de tableau plus rapide
PHP a une méthode d'échange clé-valeur array_flip Nous pouvons utiliser cette méthode pour dédupliquer, car le les valeurs de clé s'excluent mutuellement, la valeur dupliquée d'origine deviendra la même clé.
Ensuite, effectuez un échange clé-valeur et échangez les clés et les valeurs pour terminer la déduplication.
<?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; } ?>
compte unique :99
durée d'exécution :12,840032577515ms
utiliser la mémoire :768 Ko
utiliser La méthode array_flip prend environ 18 ms à exécuter et l'utilisation de la mémoire est d'environ 2 m
Par conséquent, la méthode array_flip est utilisée. pour supprimer les doublons. array_unique temps d'exécution de la méthode réduit de 98%, utilisation de la mémoire réduite de 4/5;
Comment utiliser array_sum() pour calculer la somme des éléments du tableauvaleurs
accès Éléments du tableauComment gérer les erreurs
Objet d'opération jqueryÉléments du tableauRésumé de la méthode (avec cas)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!