array_udiff
Veri karşılaştırması için bir geriçağırım işlevi kullanarak
diziler arasındaki farkı bulur
&reftitle.description;
arrayarray_udiff
arraydizi1
arraydizi2
array ...
callbackveri_karş_işlevi
Veri karşılaştırması için dahili bir işlev kullanan
array_diff işlevinden farklı olarak, veri
karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki
farkı bulur.
&reftitle.parameters;
dizi1
İlk dizi.
dizi2
İkinci dizi.
veri_karş_işlevi
Veri karşılaştırması için geriçağırım işlevi.
Kullanıcı tarafından sağlanır. Dizi değerlerinin aktarılacağı iki
değiştirge kabul etmelidir. Birinci değiştirgenin ikinciden büyük,
küçük veya ona eşit olduğu durumlarda sırayla sıfırdan büyük, sıfırdan
küçük bir değer veya sıfır döndürmelidir.
&reftitle.returnvalues;
Diğer değiştirgelerin hiçbirinde mevcut olmayan tüm
dizi1 değerlerini içeren bir dizi ile döner.
&reftitle.examples;
- array_udiff örneği
özel_üye = $val;
}
static function cr_karş_işlevi($a, $b)
{
if ($a->özel_üye === $b->özel_üye) return 0;
return ($a->özel_üye > $b->özel_üye)? 1:-1;
}
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), 0 => new cr(23),
1 => new cr(4), 2 => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), 0 => new cr(3),
1 => new cr(4), 2 => new cr(-15),);
$sonuç = array_udiff($a, $b, array("cr", "cr_karş_işlevi"));
print_r($sonuç);
?>
]]>
&example.outputs;
cr Object
(
[özel_üye:cr:private] => 12
)
[0] => cr Object
(
[özel_üye:cr:private] => 23
)
)
]]>
&reftitle.notes;
Bu işlevin bir n boyutlu dizinin tek bir boyutunu ele alacağına dikkat
ediniz. Şüphesiz daha fazla sayıda boyutun hesaba katılmasını, örneğin
array_udiff($dizi1[0], $dizi2[0],
"veri_karş_işlevi"); gibi bir kullanımla sağlayabilirsiniz.
&reftitle.seealso;
array_diff
array_diff_assoc
array_diff_uassoc
array_udiff_assoc
array_udiff_uassoc
array_intersect
array_intersect_assoc
array_uintersect
array_uintersect_assoc
array_uintersect_uassoc