array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'tr', ), 'this' => array ( 0 => 'function.array-diff-uassoc.php', 1 => 'array_diff_uassoc', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Dizi İşlevleri', ), 'prev' => array ( 0 => 'function.array-diff-key.php', 1 => 'array_diff_key', ), 'next' => array ( 0 => 'function.array-diff-ukey.php', 1 => 'array_diff_ukey', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'tr', 'path' => 'reference/array/functions/array-diff-uassoc.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
array_diff_uassoc — Dizilerin farkını hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
dizi
ile diziler
'i
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.
dizi
Karşılaştırılacak dizi.
diziler
Karşılaştırılacak diğer diziler.
anh_karş_işlevi
Karşılaştırma işlevinin, ilk bileşeninin ikinci bileşenden küçük, eşit veya büyük olması durumunda sıfırdan küçük, eşit veya büyük bir tamsayı döndürmesi gerekir.
Karşılaştırma işlevinden float gibi
tamsayı olmayan değerlerin döndürülmesi, geri çağırım
işlevinin dönüş değerinin dahili olarak int türüne
dönüştürülmesiyle sonuçlanır. Bu nedenle 0.99
ve
0.1
gibi değerlerin her ikisi de 0
tamsayı değerine dönüştürüp bunlar eşit değerler olarak karşılaştırılacaktır.
Diğer dizilerde mevcut olmayan dizi
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, çıktıda bulunur. "red"
anahtarı birinci
dizide otomatik olarak 0
'a atanır, ikinci dizide ise
0
yellow
tarafından alındığından
1
'e atanır.
<?php
function anh_karş_işlevi($a, $b)
{
return $a <=> $b;}
}
$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özdizimi kullanılabilir.