Forum und email

array_diff_uassoc

(PHP 5)

array_diff_uassoc — Berekent het verschil tussen arrays met een additionele index controle, die wordt uitgevoerd door een gebruikersfunctie

Beschrijving

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

array_diff_uassoc() geeft een array terug met daarin alle waarden van array1 die niet aanwezig zijn in een van de andere argumenten. Let erop dat de keys worden vergeleken, in tegenstelling tot array_diff().

De vergelijking wordt gedaan via een gebruikersfunctie. Deze moet een integer teruggeven die kleiner dan, gelijk aan of groter dan 0 is, als het eerste argument respectievelijk kleiner dan, gelijk aan of groter wordt beschouwd dan het tweede argument. Dit in tegenstelling tot array_diff_assoc(), waar een interne functie voor de vergelijking van de indices wordt gebruikt.

Example#1 array_diff_uassoc() voorbeeld

<?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);
?>

Het resultaat van dit script is als volgt:

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

In ons voorbeeld hierboven zie je dat het paar "a" => "green" aanwezig is in beide arrays en het zit dus niet in het resultaat van de functie. Daarentegen zit het paar 0 => "red" wel in het resultaat, omdat het tweede argument "red" een key heeft die 1 is.

De gelijkwaardigheid van 2 indices wordt gecontroleerd door de gebruikersfunctie.

Note: Let erop dat deze functie slechts een dimensie van een n-dimensionale array controleert. Het is uiteraard mogelijk om diepere dimensies te controleren, bijvoorbeeld via array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

Zie ook array_diff(), array_diff_assoc(), array_udiff(), array_udiff_assoc(), array_udiff_uassoc(), array_intersect(), array_intersect_assoc(), array_uintersect(), array_uintersect_assoc() en array_uintersect_uassoc().