(PHP 5)
array_udiff — Calcule la différence entre deux tableaux en utilisant une fonction rappel
Calcule la différence entre deux tableaux en utilisant une fonction rappel. Cette fonctionne agit comme la fonction array_diff() qui utilise une fonction interne pour comparer les données.
Le premier tableau.
Le second tableau.
La fonction de comparaison.
La fonction utilisateur de rappel est utilisée pour la comparaison. Elle 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.
Retourne un tableau contenant toutes les valeurs du tableau array1 qui ne sont pas présentes dans aucun autre argument.
Exemple #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");.