Maison >développement back-end >Problème PHP >Les tableaux multidimensionnels php peuvent-ils être dupliqués ?

Les tableaux multidimensionnels php peuvent-ils être dupliqués ?

WBOY
WBOYoriginal
2023-05-19 12:03:37589parcourir

PHP est un langage de programmation puissant qui prend en charge les tableaux multidimensionnels et la déduplication de tableaux. Au cours du processus de développement, nous devons souvent utiliser des tableaux multidimensionnels pour la gestion et le traitement des données, et la déduplication des données est également essentielle. La question est donc la suivante : les tableaux multidimensionnels en PHP peuvent-ils être dupliqués ? Cet article discutera de la méthode de déduplication des tableaux multidimensionnels en PHP.

1. Tableau multidimensionnel PHP

En PHP, un tableau multidimensionnel est un tableau contenant plusieurs tableaux imbriqués. Par exemple, nous pouvons utiliser un tableau multidimensionnel pour stocker les informations sur les notes des élèves :

$scores = array(
    "张三" => array("语文" => 85, "数学" => 90, "英语" => 98),
    "李四" => array("语文" => 91, "数学" => 88, "英语" => 95),
    "王五" => array("语文" => 92, "数学" => 95, "英语" => 90)
);

Dans l'exemple ci-dessus, nous avons créé un tableau multidimensionnel contenant trois tableaux imbriqués, chaque tableau imbriqué contient les informations sur les notes d'un élève. Notez que dans les tableaux multidimensionnels, chaque tableau a une valeur clé correspondante (Zhang San, Li Si, Wang Wu), et cette valeur clé peut être un nombre ou un type de chaîne.

2. Méthode de déduplication

  1. Fonction Array_unique()

La fonction Array_unique() est une fonction intégrée en PHP pour la déduplication. Elle peut supprimer les valeurs en double dans le tableau et conserver les valeurs clés. du tableau d'origine. Cependant, pour les tableaux multidimensionnels, la fonction array_unique() ne peut supprimer que les valeurs en double du sous-tableau de premier niveau. Par exemple :

$array = array(1,1,'a','b',array('a','b'),array('a','b')); 
$result = array_unique($array);
print_r($result);

Le résultat de sortie est :

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

)

Nous avons constaté que même si les tableaux imbriqués (« a », « b ») étaient répétés deux fois, ils n'étaient pas dédupliqués.

2. Fonction personnalisée

Pour le problème de la déduplication de tableaux multidimensionnels, nous pouvons personnaliser une fonction pour y parvenir. Voici un exemple simple :

function multi_array_unique($array){
    foreach ($array as $key1 => $value1) {
        foreach ($array as $key2 => $value2) {
            if ($key1 != $key2 && $value1 === $value2) {
                unset($array[$key2]);
            }
        }
    }
    return $array;
}

La fonction ci-dessus utilise une double boucle foreach pour parcourir des tableaux multidimensionnels. Si les deux tableaux ne sont pas le même tableau et ont des valeurs égales, les éléments suivants du tableau sont supprimés. Enfin, le tableau traité est renvoyé.

Nous pouvons tester cette fonction :

$array = array(
    array("id"=>1,"name"=>"apple"),
    array("id"=>2,"name"=>"banana"),
    array("id"=>3,"name"=>"orange"),
    array("id"=>4,"name"=>"orange"),
    array("id"=>5,"name"=>"apple")
);
$result = multi_array_unique($array);
print_r($result);

Le résultat de sortie est :

Array
(
    [0] => Array
        (
            [id] => 1
            [name] => apple
        )

    [1] => Array
        (
            [id] => 2
            [name] => banana
        )

    [2] => Array
        (
            [id] => 3
            [name] => orange
        )

)

Nous pouvons voir à partir du résultat de sortie que les valeurs en double​​dans le tableau multidimensionnel ont été supprimées et que seule la valeur unique est retenu.

3. Résumé

Les tableaux multidimensionnels PHP peuvent être dédupliqués via des fonctions personnalisées pour améliorer l'efficacité d'exécution et la précision du programme. Dans le développement réel, il est nécessaire de choisir une méthode de déduplication adaptée aux exigences du projet. Voici quelques-unes de mes expériences et idées, bienvenue pour échanger et discuter !

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