La fonction que tu donnes à array-udiff pour la comparaison (en l'occurence mns_diffu_algo) recoit deux paramètres, qui sont respectivement des valeurs provenant de l'un et de l'autre des tableaux. Pas des tableaux !
Cette fonction doit retourner un résultat de type entier, dont la position par rapport à 0 va affecter le comportement du diff. Et le diff te retourne les éléments du premier tableau qui ne se retrouvent pas dans le deuxième.
En l'occurence dans mns_diffu_algo, tu dois tester (en imaginant que $a et $b prennent successivement n'importe quelle valeur de chaque tableau) :
Si $a == $b : return 0;
Si $a > $b : return 1;
Si $a < $b : return -1;
PS : il semble important que la fonction fournie à array_udiff puisse retourner du positif et du négatif, d'ou l'intérêt de comparer des valeurs numériques exclusivement (donc peut-être se débarasser du 'v' avant le test).
# Mauvaise compréhension des paramètres $a et $b
Posté par Cali_Mero . En réponse au message bug PHP5 ou bug entre le clavier et la chaise ?. Évalué à 2.
La fonction que tu donnes à array-udiff pour la comparaison (en l'occurence mns_diffu_algo) recoit deux paramètres, qui sont respectivement des valeurs provenant de l'un et de l'autre des tableaux. Pas des tableaux !
Cette fonction doit retourner un résultat de type entier, dont la position par rapport à 0 va affecter le comportement du diff. Et le diff te retourne les éléments du premier tableau qui ne se retrouvent pas dans le deuxième.
En l'occurence dans mns_diffu_algo, tu dois tester (en imaginant que $a et $b prennent successivement n'importe quelle valeur de chaque tableau) :
Si $a == $b : return 0;
Si $a > $b : return 1;
Si $a < $b : return -1;
PS : il semble important que la fonction fournie à array_udiff puisse retourner du positif et du négatif, d'ou l'intérêt de comparer des valeurs numériques exclusivement (donc peut-être se débarasser du 'v' avant le test).