PHP -> Funkcie -> Array funkcie -> array_diff_uassoc
Syntax
array array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )
Popis
Príkaz jazyka PHP
Vypočíta rozdiel polí s dodatočnou kontrolou indexov, ktorú vykoná užívateľom určená callback funkcia.
array_diff_uassoc() vracia array obsahujúce všetky hodnoty z array1, ktoré sa nenachádzajú v žiadnom inom argumente. Upozorňujeme na to, že kľúče sa používajú v porovnávaní, na rozdiel od array_diff. Toto porovnanie sa urobí pomocou užívateľom určenej callback funkcie. Musí vrátiť integer menší než, rovný alebo väčší než nula, ak je prvý argument považovaný v poradí menší než, rovný, alebo väčší než druhý. V tomto je odlišnosť s funkciou array_diff_assoc, kde je pre porovnávanie indexov použitá vnútorná funkcia.
Príklad
<?php
function key_compare_func
($a,
$b)
{
if ($a === $b) {
return 0;
}
return ($a >
$b)? 1:-1;
}
$array1 = array
("a" =>
"zelena",
"b" =>
"hneda",
"c" =>
"modra",
"cervena");
$array2 = array
("a" =>
"zelena",
"zlta",
"cervena");
$result =
array_diff_uassoc($array1,
$array2,
"key_compare_func");
/*příklad vypíše:
Array
(
[b] => hneda
[c] => modra
[0] => cervena
)
*/
?>
V našom príklade hore vidíte, že pár "a" => "zelena" sa nachádza v oboch poliach a teda nie je vo výstupe z funkcie. function. Avšak pár 0 => "cervena" vo výstupe je, pretože druhý argument "cervena" má kľúč, ktorý je 1.
Rovnosť 2 indexov sa kontroluje užívateľom určenou callback funkciou.
Poznámka: Upozorňujeme vás na to, že táto funkcia kontroluje iba jednu dimenziu n-dimenzionálneho poľa. Samozrejme, môžete kontrolovať i hlbšie dimenzie napr. pomocou array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.
Pozri aj
array_diff, array_diff_assoc, array_udiff, array_udiff_assoc, array_udiff_uassoc, array_intersect, array_intersect_assoc, array_uintersect, array_uintersect_assoc a array_uintersect_uassoc