array_diff_uassoc

array_diff_uassoc - Vypočítá rozdíl polí s dodatečnou kontrolou indexů, která se provádi pomocí funkci definované uživatelem.

Syntaxe:

array array_diff_uassoc ( array array1, array array2 [, array ..., callback key_compare_func] )

Funkce array_diff_uassoc() vrací pole, skládající se z hodnot pole array_1, které nejsou v žádnem jiném poli z uvedených jako dalši parametry. Tato funkce je podobná funkci array_diff(), akorat porovnává klíče misto hodnot. Pro porovnání se používa funkce definová uživatelem. Musí vracet celé číslo větší, menší nebo rovné nule, jestli první parametr je větší, menší nebo rovný druhému. Na rozdíl od funkci array_diff_assoc() použiva pro porovnání speciální funkci.

Příklad použíti:

<?php
function key_compare_func($a$b
{
    if (
$a === $b) {
        return 
0;
    }
    return (
$a $b)? 1:-1;
}

$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result array_diff_uassoc($array1$array2"key_compare_func");
print_r($result);
?>

Výsledek je následující:

Array

(

    [b] => brown

    [c] => blue

    [0] => red

)

Z výstupu vidíme, že "a" => "green" je u obou poli a proto se nezobrazuje ve výsledku, pak 0 => red je ve výstupu funkce, protože v druhém poli hodnotě red odpovídá klíč 1.

Hodnoty key => value jsou stejné jenom, když (string) $elem1 === (string) $elem2, tzn. jsou identické.

Viz také: