(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.
array1
Le premier tableau.
array2
Le second tableau.
data_compare_func
La fonction de comparaison.
La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au 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");.