SunshinePHP Developer Conference 2015

array_diff_uassoc

(PHP 5)

array_diff_uassocDizilerin farkını hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır

Açıklama

array array_diff_uassoc ( array $dizi1 , array $dizi2 [, array $... ], callable $anh_karş_işlevi )

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.

Değiştirgeler

dizi1

Karşılaştırılacak dizi.

dizi2

Karşılaştırılacak diğer dizi.

...

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.

int callback ( mixed $a, mixed $b )

Dönen Değerler

Diğer tüm değiştirgelerde mevcut olmayan dizi1 girdilerinden oluşan bir dizi döner.

Örnekler

Ö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.

Notlar

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.

Ayrıca Bakınız

  • array_diff() - Dizilerin farkını hesaplar
  • array_diff_assoc() - Dizilerin farkını hesaplarken ek olarak indisleri de karşılaştırır
  • array_udiff() - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı bulur
  • array_udiff_assoc() - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur
  • array_udiff_uassoc() - Veri ve indis karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur
  • array_intersect() - Dizilerin kesişimini hesaplar
  • array_intersect_assoc() - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
  • array_uintersect() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplar
  • array_uintersect_assoc() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar
  • array_uintersect_uassoc() - Veriyi ve indisleri bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar

add a note add a note

User Contributed Notes 1 note

up
2
MD. ABU SAYEM
7 months ago
//array_diff_uassoc for multidimenssional array
$color_1=array('a'=>'white','b'=>'red','c'=>array('a'=>'green','b'=>'blue','c'=>'yellow'));
$color_2=array('a'=>'white','b'=>'red','c'=>array('a'=>'white','b'=>'red','c'=>'yellow'));

function key_compare($a,$b){
    if($a===$b)        return 0;
    return($a>$b)?1:-1;
}
print_r(array_diff_uassoc($color_1['c'], $color_2['c'],"key_compare"));

//Output
Array
(
    [a] => green
    [b] => blue
)
To Top