Forum und email

array_udiff

(PHP 5)

array_udiff — Berekent het verschil tussen arrays gebruikmakend van een gebruikersfunctie voor data vergelijking

Beschrijving

array array_udiff ( array $array1 , array $array2 [, array $ ... ], callback $data_compare_func )

array_udiff() geeft een array terug die alle waarden van array1 bevat die niet voorkomen in de andere argumenten. Let erop dat de keys worden behouden. Voor de vergelijking van de data wordt data_compare_func gebruikt. Deze moet een integer teruggeven die kleiner dan, gelijk aan of groter dan 0 is, wanneer het eerste argument respectievelijk kleiner dan, gelijk aan of groter wordt beschouwd dan het tweede argument. Dit in tegenstelling tot array_diff(), waarbij de vergelijking van de data wordt gedaan door een interne functie.

Example#1 array_udiff() voorbeeld

<?php
class cr {
    private 
$priv_member;
    function 
cr($val
    {
        
$this->priv_member $val;
    }
    
    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), => new cr(23), 1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3), 1=> new cr(4), => new cr(-15),);

$result array_udiff($a$b, array("cr""comp_func_cr"));
print_r($result);
?>

Het resultaat van dit script is als volgt:

Array
(
    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )

)

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_udiff($array1[0], $array2[0], "data_compare_func");.

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