array_intersect_ukey

(no version information, might be only in CVS)

array_intersect_ukey -- Calcul l'intersection de deux tableaux en utilisant une fonction de callback sur les clés pour comparaison

Description

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

array_intersect_ukey() retourne un tableau contenant toutes les valeurs du tableau array1 qui contiennent des clés présentent dans tous les arguments.

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

Exemple 1. Exemple avec array_intersect_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_intersect_ukey($array1, $array2, 'key_compare_func'));
?>

L'exemple ci-dessus va afficher :

array(2) {
  ["bleu"]=>
  int(1)
  ["vert"]=>
  int(3)
})

Dans cet exemple, vous pouvez voir que seules les clés 'bleu' et 'vert' sont présentes dans les deux tableaux et donc, elles sont retournées.Notez également que les valeurs pour les clés 'bleu' et 'vert' diffèrent entre les deux tableaux. Néanmoins, elles correspondent toujours car uniquement les clés sont vérifiées. Les valeurs retournées sont celles du tableau array1.

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.

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