Maison > développement back-end > Problème PHP > PHP supprime les doublons du tableau à deux dimensions

PHP supprime les doublons du tableau à deux dimensions

PHPz
Libérer: 2023-05-07 12:45:08
original
2350 Les gens l'ont consulté

En PHP, nous avons souvent besoin de traiter et d'exploiter des tableaux. Parfois, nous devons supprimer les éléments en double dans un tableau. Voici une méthode de déduplication pour les tableaux bidimensionnels.

Méthode 1 : utilisez les fonctions array_map et serialize

La fonction array_map peut appliquer une fonction de rappel à chaque élément du tableau, et la fonction de rappel renvoie un nouvel élément. Nous pouvons utiliser la fonction serialize pour sérialiser chaque élément, puis utiliser la fonction array_unique de PHP pour dédupliquer les éléments sérialisés, et enfin désérialiser les éléments sérialisés en éléments d'origine.

Exemple de code :

function uniqueArray($array)
{
    return array_map("unserialize", array_unique(array_map("serialize", $array)));
}

// 示例数据
$data = array(
    array("id" => 1, "name" => "apple"),
    array("id" => 2, "name" => "banana"),
    array("id" => 1, "name" => "apple"),
    array("id" => 3, "name" => "pear")
);

// 执行去重操作
$result = uniqueArray($data);

// 输出结果
print_r($result);
Copier après la connexion

Résultat de sortie :

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => apple
        )
    [1] => Array
        (
            [id] => 2
            [name] => banana
        )
    [3] => Array
        (
            [id] => 3
            [name] => pear
        )
)
Copier après la connexion
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord une fonction uniqueArray, qui utilise la fonction array_map pour sérialiser chaque élément du tableau, puis utilise la fonction array_unique pour sérialiser le sérialisé. les éléments sont dédupliqués et enfin les éléments sérialisés sont désérialisés en éléments d'origine à l'aide de la fonction de désérialisation.

Méthode 2 : utiliser la fonction array_reduce et la fonction array_merge

En plus d'utiliser la fonction array_map et la fonction sérialiser, nous pouvons également utiliser la fonction array_reduce et la fonction array_merge pour aplatir les éléments du tableau bidimensionnel afin de former un tableau unidimensionnel. Utilisez ensuite la fonction array_unique pour dédupliquer le tableau unidimensionnel, et enfin utilisez la fonction array_map pour reconvertir le tableau unidimensionnel en un tableau bidimensionnel.

Exemple de code :

function uniqueArray($array)
{
    return array_map("unserialize", array_unique(array_map("serialize", array_reduce($array, "array_merge", array()))));
}

// 示例数据
$data = array(
    array("id" => 1, "name" => "apple"),
    array("id" => 2, "name" => "banana"),
    array("id" => 1, "name" => "apple"),
    array("id" => 3, "name" => "pear")
);

// 执行去重操作
$result = uniqueArray($data);

// 输出结果
print_r($result);
Copier après la connexion

Résultat de sortie :

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => apple
        )
    [1] => Array
        (
            [id] => 2
            [name] => banana
        )
    [3] => Array
        (
            [id] => 3
            [name] => pear
        )
)
Copier après la connexion
Copier après la connexion

Dans le code ci-dessus, nous définissons d'abord une fonction uniqueArray, qui utilise la fonction array_reduce et la fonction array_merge pour aplatir les éléments du tableau bidimensionnel en un tableau unidimensionnel, puis utilisez la fonction array_map pour sérialiser, dédupliquer et désérialiser les éléments du tableau unidimensionnel, et enfin reconvertir le tableau unidimensionnel en un tableau bidimensionnel.

Résumé

Les deux méthodes ci-dessus peuvent dédupliquer des tableaux bidimensionnels, mais la première méthode utilise la sérialisation pour conserver le type des données d'origine pendant la déduplication, tandis que la deuxième méthode nécessite la seconde Aplatir les éléments dans un tableau 1D puis convertir le tableau 1D en un tableau 2D. La méthode à utiliser peut être choisie en fonction des besoins réels et du volume de données.

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!

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