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

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

PHPz
PHPzoriginal
2023-03-23 14:48:061257parcourir

Dans le développement PHP, nous rencontrons souvent le besoin de comparer deux tableaux associatifs et d'obtenir leurs différentes parties. Ci-dessous, nous présenterons plusieurs façons d’obtenir cette fonctionnalité.

Méthode 1 : utilisez la fonction array_diff_assoc()

La fonction array_diff_assoc() peut être utilisée pour comparer les paires clé-valeur de deux tableaux associatifs, et renvoyer tous les éléments du premier tableau mais pas dans les autres tableaux, et conserver la clé nom et valeur de la clé.

Exemple de code :

$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_diff_assoc($array1, $array2);  
print_r($result);

Le résultat de sortie est :

Array
(
    [name] => 张三
    [salary] => 3000
)

Comme vous pouvez le voir, le tableau de résultats ne contient que les paires clé-valeur avec les noms de clé "nom" et "salaire" dans le tableau 1, car elles ne le font pas. apparaissent dans le tableau 2 .

Méthode 2 : utiliser une fonction personnalisée

Une autre méthode d'implémentation consiste à personnaliser une fonction pour ajouter différentes parties au tableau de résultats en parcourant deux tableaux et en comparant leurs paires clé-valeur.

Exemple de code :

function array_diff_custom($array1, $array2) {  
    $result = array();  
    foreach ($array1 as $key => $value) {  
        if (!array_key_exists($key, $array2) || ($array2[$key] != $value)) {  
            $result[$key] = $value;  
        }  
    }  
    return $result;  
}  
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_diff_custom($array1, $array2);  
print_r($result);

Le résultat de sortie est :

Array
(
    [name] => 张三
    [salary] => 3000
)

De même, le tableau de résultats ne contient que les paires clé-valeur avec les noms de clé "nom" et "salaire" dans le tableau 1.

Méthode 3 : utilisez la fonction array_udiff_assoc()

La fonction array_udiff_assoc() est similaire à la fonction array_diff_assoc(), mais elle peut utiliser une fonction de rappel définie par l'utilisateur pour comparer les paires clé-valeur.

Exemple de code :

function compareByKeyValue($a, $b) {  
    if ($a === $b) {  
        return 0;  
    }  
    return ($a > $b) ? 1 : -1;  
}  
$array1 = array("name"=>"张三", "age"=>22, "salary"=>3000);  
$array2 = array("name"=>"李四", "age"=>22, "salary"=>4000);  
$result = array_udiff_assoc($array1, $array2, "compareByKeyValue");  
print_r($result);

Le résultat de sortie est :

Array
(
    [name] => 张三
    [salary] => 3000
)

Nous définissons une fonction de rappel compareByKeyValue() pour comparer si les paires clé-valeur sont identiques. En passant le nom de cette fonction comme troisième argument à la fonction array_udiff_assoc(), nous pouvons obtenir un effet similaire à la fonction array_diff_assoc().

Résumé

Cet article présente trois méthodes pour obtenir différentes parties de deux tableaux associatifs en PHP : en utilisant la fonction array_diff_assoc(), une fonction personnalisée et la fonction array_udiff_assoc(). La méthode que vous choisissez dépend de vos besoins spécifiques et de vos habitudes personnelles. Quoi qu'il en soit, vous pouvez améliorer l'efficacité et la précision lorsque vous travaillez avec des tableaux associatifs.

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