Maison > développement back-end > Problème PHP > Comment obtenir les différentes parties de deux tableaux en php

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

PHPz
Libérer: 2023-04-20 09:48:26
original
492 Les gens l'ont consulté

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);
Copier après la connexion

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

Array ( [0] => apple )
Copier après la connexion
  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);
Copier après la connexion

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);
Copier après la connexion

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;
}
Copier après la connexion

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!

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