array_diff_ukey

(no version information, might be only in CVS)

array_diff_ukey -- Calcul la différence entre deux tableaux en utilisant une fonction de callback sur les clés pour comparaison

Description

array array_diff_ukey ( array array1, array array2 [, array ..., callback key_compare_func] )

array_diff_ukey() retourne un tableau contenant toutes les valeurs de array1 où les clés de ce tableau ne sont présentes dans aucun des autres arguments. Notez que l'associativité est préservée. Cette fonction fonctionne de la même façon que la fonction array_diff() excepté le fait que la comparaison est faîte sur les clés au lieu des valeurs.

Cette comparaison est effectué en utilisant une fonction de callback fournise. Elle doit retourner un entier plus petit que, égal à ou plus grand que 0 si la première clé est considérée comme, respectivement, plus petite que, égale à ou plus grande que la seconde.

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('bleu'  => 1, 'rouge'  => 2, 'vert'  => 3, 'violet' => 4);
$array2 = array('vert' => 5, 'bleu' => 6, 'jaune' => 7, 'cyan'   => 8);

var_dump(array_diff_ukey($array1, $array2, 'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["rouge"]=>
  int(2)
  ["violet"]=>
  int(4)
}

Les deux clés depuis les paires clé => valeur sont considérées comme égales uniquement si (string) $cle1 === (string) $cle2 . En d'autres mots, une analyse du type stricte est exécuté, donc, le type doit être exactement le même.

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');.

Voir aussi array_diff(), array_udiff() array_diff_assoc(), array_diff_uassoc(), array_udiff_assoc(), array_udiff_uassoc(), array_diff_key(), array_intersect(), array_intersect_assoc(), array_intersect_uassoc(), array_intersect_key() et array_intersect_ukey().