(PHP 5)
array_diff_uassoc — Dizilerin farkını hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
dizi1 ile dizi2'yi karşılaştırır ve farkı döndürür. Değerler yerine anahtarları karşılaştırması dışında array_diff() işlevi gibidir.
array_diff_assoc() işlevinden farklı olarak anahtarları karşılaştırmak için bir dahili işlev değil, kullanıcı tanımlı bir geriçağırım işlevi kullanılır.
Karşılaştırılacak dizi.
Karşılaştırılacak diğer dizi.
Karşılaştırılacak diğer diziler.
Karşılaştırma için kullanıcı tarafından sağlanan bir geriçağırım işlevi kullanılır. İşlev, ilk değiştirgenin ikinciden büyük, küçük veya ikinciye eşit olması durumlarında sırayla sıfırdan büyük, küçük bir değer veya sıfır döndürmelidir.
Diğer tüm değiştirgelerde mevcut olmayan dizi1 girdilerinden oluşan bir dizi döner.
Örnek 1 - array_diff_uassoc() örneği
"a" => "green" çifti her iki dizide de mevcut olduğundan bu eleman çıktıda bulunmaz. 0 => "red" çifti ise aksine, ikinci "red" değeri 1 anahtarına sahip olduğundan çıktıda bulunur.
<?php
function anh_karş_işlevi($a, $b)
{
if ($a === $b) {
return 0;
}
return ($a > $b)? 1:-1;
}
$dizi1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$dizi2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($dizi1, $dizi2, "anh_karş_işlevi");
print_r($result);
?>
Yukarıdaki örneğin çıktısı:
Array ( [b] => brown [c] => blue [0] => red )
İki indisin eşitliğine kullanıcı tarafından sağlanmış geriçağırım işlevi tarafından bakılır.
Bilginize:
Bu işlev n boyutlu bir dizinin sadece bir boyutunu karşılaştırır. Daha derinliğine karşılaştırmalar yapmak için array_diff_uassoc($dizi1[0], $dizi2[0], 'anh_kars_islevi'); sözdizimini kullanabilirsiniz.