Maison  >  Article  >  développement back-end  >  Comment obtenir les différentes parties de deux tableaux en php

Comment obtenir les différentes parties de deux tableaux en php

PHPz
PHPzoriginal
2023-04-20 09:11:19416parcourir

PHP est un langage de script open source populaire largement utilisé pour le développement Web. Dans le travail quotidien des développeurs PHP, il est souvent nécessaire de comparer deux tableaux et de retrouver les différentes parties entre eux. Cet article partagera quelques méthodes pour réaliser différents tableaux.

  1. Fonction array_diff()

La fonction array_diff() en PHP peut être utilisée pour comparer la différence entre deux tableaux. Il renvoie l'ensemble de valeurs pour lesquelles le premier tableau diffère des autres tableaux. Voici l'exemple de code :

$a1 = array("apple", "orange", "banana");
$a2 = array("orange", "banana", "pear");
$result = array_diff($a1, $a2);
print_r($result);

Le résultat de l'exécution sera imprimé :

Array ( [0] => apple )
  1. fonction array_udiff()

PHP fournit également la fonction array_udiff(). Cette fonction vous permet de personnaliser une fonction de rappel pour comparer les valeurs d'un tableau. Il s'agit d'une méthode plus flexible adaptée aux comparaisons de données plus complexes. Voici l'exemple de code :

function my_array_diff($a1, $a2) {
    return strcmp($a1,$a2);
}

$a1 = array("apple", "orange", "banana");
$a2 = array("orange", "banana", "pear");
$result = array_udiff($a1, $a2, "my_array_diff");
print_r($result);

Cette fonction renverra également l'ensemble des valeurs du premier tableau qui sont différentes des autres tableaux.

  1. Fonction Array_diff_key() La fonction

array_diff_key() est utilisée pour comparer les clés de deux tableaux, pas les valeurs correspondant aux clés. Il renvoie l'ensemble de clés pour lequel le premier tableau diffère des autres tableaux. Voici l'exemple de code :

$a1 = array("a" => "apple", "b" => "orange", "c" => "banana");
$a2 = array("a" => "orange", "b" => "banana", "d" => "pear");
$result = array_diff_key($a1, $a2);
print_r($result);

Cette fonction renvoie uniquement l'élément avec la clé "c" dans $a1 car il n'y a pas de clé correspondante dans $a2.

  1. Comparaison de tableaux multidimensionnels

Si vous devez comparer différentes parties d'un tableau multidimensionnel, vous devez utiliser une fonction récursive pour la comparaison. Voici un exemple de code pour une fonction récursive :

function array_diff_recursive($array1, $array2) {
    $result = array();
    foreach($array1 as $key => $value) {
        if(is_array($value)) {
            if(!isset($array2[$key]) || !is_array($array2[$key])) {
                $result[$key] = $value;
            } else {
                $diff = array_diff_recursive($value, $array2[$key]);
                if(!empty($diff)) {
                    $result[$key] = $diff;
                }
            }
        } else if(!array_key_exists($key,$array2) || $array2[$key] !== $value) {
            $result[$key] = $value;
        }
    }
    return $result;
}

Cette fonction compare deux tableaux multidimensionnels et renvoie un tableau contenant uniquement les valeurs dans lesquelles le premier tableau diffère des autres tableaux.

Résumé

Que vous ayez besoin de comparer deux tableaux simples ou des tableaux multidimensionnels, PHP dispose de nombreuses fonctions intégrées pour vous aider à le faire. La fonction array_diff() permet de comparer les différentes parties entre deux tableaux, la fonction array_udiff() permet de personnaliser la fonction de rappel pour comparer les valeurs du tableau, la fonction array_diff_key() compare les clés des deux tableaux, non les valeurs, et enfin, si Si vous devez comparer différentes parties d'un tableau multidimensionnel, vous devez utiliser une fonction récursive pour la comparaison. Connaître ces méthodes vous permet d'effectuer plus facilement les tâches liées aux comparaisons de tableaux.

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