Maison  >  Article  >  développement back-end  >  Comment obtenir un effet de déduplication rapide des éléments du tableau PHP

Comment obtenir un effet de déduplication rapide des éléments du tableau PHP

jacklove
jackloveoriginal
2018-06-09 09:52:431875parcourir

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. 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.

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 &#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;
}?>

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

3. Mettre à jour la méthode de déduplication rapide du tableau

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 &#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;
}?>

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn