Maison >développement back-end >tutoriel php >Comment supprimer les éléments en double dans un tableau PHP multidimensionnel ?

Comment supprimer les éléments en double dans un tableau PHP multidimensionnel ?

WBOY
WBOYoriginal
2024-04-28 08:06:021198parcourir

Pour supprimer les éléments en double dans les tableaux PHP multidimensionnels, vous pouvez utiliser la fonction array_unique() ou une fonction récursive personnalisée. array_unique() gère le tableau interne dans son ensemble, tandis qu'une fonction récursive personnalisée parcourt le tableau et les examine élément par élément. Dans un cas d'utilisation pratique, ces méthodes peuvent être utilisées pour supprimer les adresses e-mail en double afin de garantir qu'un seul e-mail est envoyé à chaque utilisateur.

如何去重多维 PHP 数组中的重复元素?

Comment supprimer les éléments en double dans des tableaux PHP multidimensionnels

Avant-propos

Lorsque vous traitez des tableaux multidimensionnels, vous rencontrerez parfois le problème des éléments en double. Cela peut conduire à des données incohérentes et à une analyse difficile. Cet article présentera plusieurs méthodes pour supprimer efficacement les éléments en double des tableaux PHP multidimensionnels.

Méthode

1. Utilisez la fonction array_unique() array_unique() 函数

array_unique() 函数可以用来删除一维数组中的重复元素。它接受一个数组作为参数,并返回一个包含唯一元素的新数组。

<?php
$arr = array(
    array(1, 2, 3),
    array(3, 4, 5),
    array(1, 2, 6),
);

$unique_arr = array_unique($arr);
print_r($unique_arr);
?>

输出:

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

在这个例子中,array_unique() 函数并没有删除多维数组中的重复元素。它只是将内部数组作为一个整体来处理,而没有递归地遍历它们。

2. 使用递归函数

为了递归地去除多维数组中的重复元素,我们需要编写一个自定义函数。该函数将遍历数组并逐个元素地检查它们。

<?php
function remove_duplicates($arr) {
    $unique_arr = array();

    foreach ($arr as $sub_arr) {
        if (!in_array($sub_arr, $unique_arr)) {
            $unique_arr[] = $sub_arr;
        }
    }

    return $unique_arr;
}
?>

我们现在可以使用这个函数对多维数组进行去重:

$unique_arr = remove_duplicates($arr);
print_r($unique_arr);

输出:

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

实战案例

假设我们有一个包含用户电子邮件地址的多维数组。我们需要去除重复的电子邮件地址,以确保向每个用户只发送一封邮件。我们可以使用上述方法之一来完成此任务。

使用 array_unique()

La fonction array_unique() peut être utilisée pour supprimer les éléments en double dans un tableau unidimensionnel. . Il accepte un tableau comme argument et renvoie un nouveau tableau contenant des éléments uniques.

<?php
$users = array(
    array('email' => 'john@example.com'),
    array('email' => 'mary@example.com'),
    array('email' => 'john@example.com'),
);

$unique_users = array_unique($users, SORT_REGULAR);
print_r($unique_users);
?>
Sortie :
<?php
$users = array(
    array('email' => 'john@example.com'),
    array('email' => 'mary@example.com'),
    array('email' => 'john@example.com'),
);

$unique_users = remove_duplicates($users);
print_r($unique_users);
?>

Dans cet exemple, la fonction array_unique() ne supprime pas les éléments en double du tableau multidimensionnel. Il gère simplement le tableau interne dans son ensemble sans les parcourir de manière récursive.

🎜2. Utilisation de fonctions récursives 🎜🎜🎜Afin de supprimer de manière récursive les éléments en double d'un tableau multidimensionnel, nous devons écrire une fonction personnalisée. Cette fonction parcourra le tableau et les vérifiera élément par élément. 🎜
Array
(
    [0] => Array
        (
            [email] => john@example.com
        )
    [1] => Array
        (
            [email] => mary@example.com
        )
)
🎜 Nous pouvons maintenant dédupliquer des tableaux multidimensionnels à l'aide de cette fonction : 🎜rrreee🎜 Résultat : 🎜rrreee🎜🎜 Exemple pratique 🎜🎜🎜 Supposons que nous ayons un tableau multidimensionnel contenant les adresses e-mail des utilisateurs. Nous devons supprimer les adresses e-mail en double pour garantir qu'un seul e-mail est envoyé à chaque utilisateur. Nous pouvons accomplir cette tâche en utilisant l'une des méthodes mentionnées ci-dessus. 🎜🎜🎜Utilisation de la fonction array_unique() : 🎜🎜rrreee🎜🎜Utilisation de la fonction récursive : 🎜🎜rrreee🎜Les deux méthodes produiront le résultat suivant, en supprimant les adresses e-mail en double : 🎜rrreee

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