Page 1 sur 1

array_intersect_uassoc() bug ?

Posté : 10 août 2016, 22:12
par carte-sd
Bonsoir à tous,
Dans la doc PHP il est écrit
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.
int callback ( mixed $a, mixed $b )
.
Je ne sais pas si c'est à cause de la fatigue mais je n'arrive pas à comprendre pourquoi les variables de la fonction callback semblent inversées.
Voici mon code:

Code : Tout sélectionner

function comparer($a, $b) { if ($a == $b): return 0; endif; return ($a > $b) ? 1 : -1; } $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "B" => "brown", "yellow", "red"); print_r(array_intersect_uassoc($array1, $array2, "comparer"));
Je me chope un array() vide comme résultat alors que si j'inverse l'opérateur de comparaison

Code : Tout sélectionner

return ($a < $b) ? 1 : -1;
ça marche correctement. Le problème c'est que ce n'est pas ce que je comprends dans la description de la fonction... #-o

Pouvez-vous m'expliquer ?