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
&reftitle.description;
arrayarray_udiff_assoc
arraydizi1
arraydizi2
array ...
callbackveri_karş_işlevi
Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler
arasındaki farkı indislerine de bakarak bulur.
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_assoc($dizi1[0], $dizi2[0],
"veri_karş_işlevi"); gibi bir kullanımla sağlayabilirsiniz.
&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.
Karşılaştırmada array_diff ve
array_udiff işlevlerinden farklı olarak anahtarlar
kullanılır. Verilerin karşılaştırması kullanıcı tarafından tanımlanmış
bir işlev kullanılarak yapılır. Verileri karşılaştırmak için dahili bir
işlev kullanan array_diff_assoc işlevinden farklı
olarak bu işlev kullanıcı tanımlı bir işlev kullanır.
&reftitle.examples;
- array_udiff_assoc örneği
priv_member = $val;
}
static function comp_func_cr($a, $b)
{
if ($a->priv_member === $b->priv_member) return 0;
return ($a->priv_member > $b->priv_member)? 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),);
$result = array_udiff_assoc($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>
]]>
&example.outputs;
cr Object
(
[priv_member:private] => 9
)
[0.5] => cr Object
(
[priv_member:private] => 12
)
[0] => cr Object
(
[priv_member:private] => 23
)
)
]]>
Yukarıdaki örnekte gördüğünüz gibi "1" => new cr(4)
çifti her iki dizide de mevcut olduğundan çıktıda gözükmemektedir.
&reftitle.seealso;
array_diff
array_diff_assoc
array_diff_uassoc
array_udiff
array_udiff_uassoc
array_intersect
array_intersect_assoc
array_uintersect
array_uintersect_assoc
array_uintersect_uassoc