Maison > Article > développement back-end > Comment obtenir un effet de déduplication rapide des éléments du tableau PHP
Pour dédupliquer les éléments du tableau, nous utilisons généralement la méthode array_unique. Cette méthode peut dédupliquer les éléments 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, les valeurs clés seront dans le désordre. Vous pouvez utiliser array_values pour réorganiser les valeurs clés.
<?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
durée d'exécution :653,39303016663 ms
utiliser la mémoire :5120 Ko
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 5 min
php a une méthode d'échange clé-valeur array_flip Nous pouvons utiliser cette méthode pour dédupliquer les valeurs en double d'origine. deviendra la même clé.
Ensuite, effectuez à nouveau 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
Utilisez la méthode array_flip pour supprimer les doublons. le temps prend environ 18 ms, l'utilisation de la mémoire est d'environ 2 m
Par conséquent, l'utilisation de la méthode array_flip pour supprimer la duplication prend moins de temps que l'utilisation de la méthode array_flip. 🎜>array_uniqueméthode98%, utilisation de la mémoire réduite4/5
;Cet article explique comment obtenir l'effet de déduplication rapide des éléments du tableau PHP. Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois. Recommandations associées :Comment trouver des éléments de tableau via PHP pour améliorer l'efficacité
À propos du mode strict de MySQL Explication du mode strict
Explication des problèmes que les novices négligent facilement lors de l'utilisation d'exploser pour diviser des chaînes en PHP
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!