Notatki PHP

prywatne zapiski na kamieniu

array_diff_ukey - oblicza różnicę tablic używając funkcji zwrotnej do porównywania kluczy.

array array_diff_ukey ( array $tablica1 , array $tablica2 [, array $ ... ], callback $funk_porównania_kluczy )

array_diff_ukey() zwraca tablicę zawierającą wszystkie wartości z $tablica1, których klucze nie są obecne w żadnym z innych argumentów. Asocjacje są zachowywane. Funkcja ta jest podobna do array_diff(), z tym, że porównywane są klucze, a nie wartości.

Porównanie jest dokonywane przy pomocy podanej funkcji zwrotnej. Musi ona zwracać liczbę całkowitą mniejszą, równą lub większą od zera, jeśli pierwszy klucz jest uznawany za mniejszy, równy lub większy drugiego.   

 
function porownaj_klucze($klucz1, $klucz2)
{
    if ($klucz1 == $klucz2)
        return 0;
    else if ($klucz1 > $klucz2)
        return 1;
    else
        return -1;
}
 
$tablica1 = tablica('niebieski'  => 1, 'czerwony'  => 2, 'zielony'  => 3, 'purpurowy' => 4);
$tablica2 = tablica('zielony' => 5, 'niebieski' => 6, 'żółty' => 7, 'cyan'   => 8);
 
var_dump(array_diff_ukey($tablica1, $tablica2, 'porownaj_klucze'));

Otrzymamy:

 
array(2) {
  ["czerwony"]=>
  int(2)
  ["purpurowy"]=>
  int(4)
}