array_udiff
(PHP 5)
array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
Description
array_udiff() retourne un tableau contenant toutes les valeurs de array1 qui ne sont pas présentes dans les autres arguments array2 , ... . Notez que les clés sont préservées. Pour la comparaison des données, la fonction data_compare_func est utilisée. Cette fonction doit retourner un entier plus petit que, égal à , ou plus grand que zéro si le premier argument est respectivement plus petit que, égal au, ou plus grand que le second. Ce comportement est différent de celui de array_diff() où une fonction interne de comparaison des données est utilisée.
Example#1 Exemple avec array_udiff()
<?php
class cr {
private $priv_member;
function cr($val) {
$this->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($a, $b, array("cr", "comp_func_cr"));
print_r($result);
?>
L'exemple ci-dessus va afficher :
Array ( [0.5] => cr Object ( [priv_member:private] => 12 ) [0] => cr Object ( [priv_member:private] => 23 ) )
Note: Notez que cette fonction ne vérifie qu'une seule dimension d'un tableau multidimensionnel. Vous pouvez, bien sûr, tester une dimension particulière en utilisant par exemple array_udiff($array1[0], $array2[0], "data_compare_func");.
Voir aussi array_diff(), array_diff_assoc(), array_diff_uassoc(), array_udiff_assoc(), array_udiff_uassoc(), array_intersect(), array_intersect_assoc(), array_uintersect(), array_uintersect_assoc() et array_uintersect_uassoc().