par
carte-sd » 10 août 2016, 22:12
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
ç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 ?
Bonsoir à tous,
Dans la doc PHP il est écrit [quote]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 )[/quote].
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]
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]
Je me chope un array() vide comme résultat alors que si j'inverse l'opérateur de comparaison [code]return ($a < $b) ? 1 : -1;[/code] ç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 ?