Maison > développement back-end > tutoriel php > Comment supprimer rapidement les éléments en double des tableaux php

Comment supprimer rapidement les éléments en double des tableaux php

墨辰丷
Libérer: 2023-03-27 14:30:02
original
2043 Les gens l'ont consulté

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);
?>
Copier après la connexion

Sortie :

Array
(
  [0] => 1
  [1] => 2
  [2] => 3
  [3] => 4
  [4] => 5
  [5] => 6
  [6] => 7
  [7] => 8
  [8] => 9
)
Copier après la connexion

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 &#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;
}
?>
Copier après la connexion

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 &#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;
}
?>
Copier après la connexion

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;

Recommandations associées :

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal