(PHP 4 >= 4.3.0, PHP 5, PHP 7)
array_diff_assoc — Dizilerin farkını hesaplarken ek olarak indisleri de karşılaştırır
$dizi1
, array $dizi2
[, array $...
] )
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.
dizi1
Karşılaştırılacak dizi.
dizi2
Karşılaştırılacak diğer dizi.
...
Karşılaştırılacak diğer diziler.
Diğer tüm değiştirgelerde mevcut olmayan dizi1
girdilerinden oluşan bir dizi döner.
Örnek 1 - array_diff_assoc() örneği - 1
"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
$dizi1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$dizi2 = array("a" => "green", "yellow", "red");
$sonuc = array_diff_assoc($dizi1, $dizi2);
print_r($sonuc);
?>
Yukarıdaki örneğin çıktısı:
Array ( [b] => brown [c] => blue [0] => red )
Örnek 2 - array_diff_assoc() örneği - 2
İki elemanın eşit olması için sadece ve sadece (string) $elem1 === (string) $elem2 olmalıdır. Başka bir deyişle, dizgesel gösterimler aynı olmalıdır.
<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
Yukarıdaki örneğin çıktısı:
Array ( [0] => 0 [1] => 1 )
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_assoc($dizi1[0], $dizi2[0]); sözdizimini kullanabilirsiniz.
Bilginize: Çok fazla anahtara sahip benzer dizileri karşılaştırırken değiştirgeleri doğru sırada vermeye dikkat edin. Yeni dizi listedeki ilk dizi olmalıdır.