array_intersect_uassoc() bug ?
Posté : 10 août 2016, 22:12
Bonsoir à tous,
Dans la doc PHP il est écrit
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:
Je me chope un array() vide comme résultat alors que si j'inverse l'opérateur de comparaison ça marche correctement. Le problème c'est que ce n'est pas ce que je comprends dans la description de la fonction...
Pouvez-vous m'expliquer ?
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"));
Code : Tout sélectionner
return ($a < $b) ? 1 : -1;Pouvez-vous m'expliquer ?