(PHP 5 >= 5.1.0, PHP 7, PHP 8)
array_diff_ukey — Calcule la différence entre deux tableaux en utilisant une fonction de rappel sur les clés pour comparaison
Compare les clés du tableau array
avec celles
des tableaux arrays
et retourne la différence.
Cette fonction est identique à la fonction array_diff(),
excepté le fait que la comparaison est effectuée sur les clés, plutôt que
sur les valeurs.
Contrairement à la fonction array_diff_key(), une fonction utilisateur est fournie pour la comparaison des indices, et non une fonction interne.
array
Le tableau à comparer
arrays
Tableaux à comparer contre
key_compare_func
La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second.
Retourner des valeurs non-entières à partir de la fonction
de comparaison, telles que float, entraînera une conversion interne
de la valeur de retour du rappel en int. Ainsi, des valeurs telles que
0.99
et 0.1
seront toutes deux converties en une
valeur entière de 0
, ce qui comparera de telles valeurs comme égales.
Retourne un tableau contenant toutes les entrées du tableau
array
qui ne sont présentes dans
aucun autre tableau.
Exemple #1 Exemple avec array_diff_ukey()
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>
L'exemple ci-dessus va afficher :
array(2) { ["red"]=> int(2) ["purple"]=> int(4) }
Note:
Notez que cette fonction vérifie uniquement une dimension d'un tableau possédant n dimensions. Bien sûr, vous pouvez vérifier une dimension plus profonde en utilisant, par exemple,
array_diff_ukey($array1[0], $array2[0], 'callback_func');
.