Maison >développement back-end >Problème PHP >Comment effacer les mêmes nombres dans le tableau php

Comment effacer les mêmes nombres dans le tableau php

PHPz
PHPzoriginal
2023-04-27 09:06:14484parcourir

En PHP, nous devons souvent effectuer diverses opérations sur les tableaux, telles que la recherche, le tri et la déduplication. L'opération de déduplication consiste à supprimer les éléments en double dans le tableau. Dans le processus de développement actuel, nous rencontrons souvent des situations où nous devons effacer les mêmes nombres. Cet article explique comment utiliser les tableaux PHP pour supprimer les nombres en double.

1. Fonction array_unique()

Il existe une fonction array_unique() en PHP, qui peut être utilisée pour supprimer les valeurs en double d'un tableau et renvoyer un nouveau tableau. Cette fonction utilise la comparaison de valeurs, c'est-à-dire que seuls les éléments ayant des valeurs égales sont considérés comme des doublons.

Ce qui suit est un exemple de code pour utiliser la fonction array_unique() pour supprimer les doublons :

<?php
//定义一个包含相同数字的数组
$array = array(1, 1, 2, 3, 4, 4, 5, 5, 5);

//去重
$new_array = array_unique($array);

//输出去重后的数组
print_r($new_array);
?>

En exécutant le code ci-dessus, vous pouvez obtenir le résultat :

Array
(
    [0] => 1
    [2] => 2
    [3] => 3
    [4] => 4
    [6] => 5
)

Nous pouvons voir que les numéros en double ont été supprimés, ne laissant que des numéros différents. Nombres.

2. Utilisez le parcours de boucle pour supprimer les doublons

En plus d'utiliser la fonction array_unique(), nous pouvons également utiliser le parcours de boucle pour supprimer les doublons. L'implémentation spécifique est la suivante :

<?php
//定义一个包含相同数字的数组
$array = array(1, 1, 2, 3, 4, 4, 5, 5, 5);

//去重
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}

//输出去重后的数组
print_r($new_array);
?>

Dans le code ci-dessus, nous utilisons un tableau vide $new_array pour stocker des nombres uniques. Utilisez ensuite une boucle foreach pour parcourir le tableau d'origine $array. Si l'élément actuel n'est pas dans $new_array, ajoutez l'élément actuel au tableau $new_array.

Après avoir exécuté le code ci-dessus, vous pouvez obtenir le même résultat qu'avant :

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

3. Comparaison des performances

Les deux méthodes de déduplication sont mentionnées ci-dessus, alors quelles sont leurs performances ? Comparons.

Afin de comparer les performances des deux méthodes, nous avons défini un tableau contenant 100 000 nombres aléatoires, puis utilisé les deux méthodes pour le dédupliquer, et compté le temps d'exécution. Le code est le suivant :

<?php
//1. 使用 array_unique() 函数
$array = array();
for ($i = 0; $i < 100000; $i++) {
    $array[] = rand(1, 100000);
}
$start_time = microtime(true);
$new_array = array_unique($array);
$end_time = microtime(true);
echo &#39;使用 array_unique() 函数执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;

echo "\n";

//2. 使用循环遍历
$array = array();
for ($i = 0; $i < 100000; $i++) {
    $array[] = rand(1, 100000);
}
$start_time = microtime(true);
$new_array = array();
foreach ($array as $value) {
    if (!in_array($value, $new_array)) {
        $new_array[] = $value;
    }
}
$end_time = microtime(true);
echo &#39;使用循环遍历执行时间:&#39;, $end_time - $start_time, &#39; 秒&#39;;
?>

En exécutant le code ci-dessus, vous pouvez obtenir le résultat suivant :

使用 array_unique() 函数执行时间:0.011376142501831 秒
使用循环遍历执行时间:15.46102309227 秒

Nous pouvons voir que l'utilisation de la fonction array_unique() est beaucoup plus efficace.

4. Résumé

Dans le développement réel, afin d'améliorer l'efficacité d'exécution du programme, nous devrions essayer d'utiliser les fonctions intégrées fournies par PHP au lieu d'écrire nous-mêmes des boucles et d'autres codes pour le traitement. Pour le problème de la suppression des nombres identiques dans un tableau, l'utilisation de la fonction array_unique() intégrée à PHP est la méthode la plus simple et la plus efficace, tandis que l'utilisation du parcours de boucle pour supprimer les doublons fera perdre beaucoup de temps et de ressources.

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