Dans PHP, array_diff_key () est une fonction utilisée pour calculer l'ensemble de différence de deux tableaux. Il renvoie un tableau contenant toutes les paires de valeurs clés qui existent dans le premier tableau mais pas dans le deuxième tableau. Cette fonction se compare basée sur les clés du tableau, pas les valeurs.
array_diff_key(array $array1, array $array2, array ...$arrays): array
$ array1
Il s'agit du premier tableau à être comparé.
$ array2
Il s'agit du deuxième tableau à comparer avec $ array1 . Les clés de ce tableau seront supprimées de $ array1 .
$ Arrays (facultatif)
Plus de tableaux peuvent être passés à titre de comparaison, Array_Diff_Key () supprimeront les clés de ces tableaux de $ array1 .
Cette fonction renvoie un nouveau tableau contenant toutes les paires de valeurs clés qui existent dans $ array1 mais pas dans $ array2 ou d'autres tableaux passés.
Voici un exemple utilisant la fonction array_diff_key () :
<?php
$array1 = [
"apple" => 1,
"banana" => 2,
"cherry" => 3
];
$array2 = [
"banana" => 2,
"cherry" => 3
];
$result = array_diff_key($array1, $array2);
print_r($result);
?>
Sortir:
Array
(
[apple] => 1
)
Dans cet exemple, array_diff_key () compare $ array1 et $ array2 et renvoie un nouveau tableau contenant la clé "Apple" , car cette clé n'existe que dans $ array1 et non dans $ array2 .
Vous pouvez également transmettre plusieurs tableaux à array_diff_key () , qui compare les clés dans $ array1 et tous les autres tableaux, les paires de valeurs clés de retour qui contiennent des valeurs de clés qui existent dans $ array1 mais ne sont pas dans d'autres tableaux.
<?php
$array1 = [
"apple" => 1,
"banana" => 2,
"cherry" => 3,
"date" => 4
];
$array2 = [
"banana" => 2,
"cherry" => 3
];
$array3 = [
"apple" => 1,
"date" => 4
];
$result = array_diff_key($array1, $array2, $array3);
print_r($result);
?>
Sortir:
Array
(
[banana] => 2
)
Dans cet exemple, array_diff_key () compare $ array1 et $ array2 , $ array3 , et renvoie un array contenant la "banane" clé car elle n'apparaît que dans $ array1 , mais dans $ array2 et $ array3 .
array_diff_key () est une comparaison basée sur les clés, pas une valeur. Il ne prend donc pas en compte les valeurs du tableau, il fonctionne simplement sur les clés.
Si vous passez plusieurs tableaux, la fonction compare les clés de ces tableaux et renvoie un tableau contenant les clés uniques dans $ array1 .
Si une clé est présente dans tous les tableaux, le résultat ne contiendra pas cette clé.
Si vous souhaitez voir une documentation plus détaillée sur la fonction array_diff_key () , reportez-vous au lien suivant: