Page 1 sur 1

manipulation d'un array

Posté : 18 déc. 2010, 02:37
par b3f3
Bonjour,
je rencontre un soucis de manipulation d'array.
Le code qui fonctionne :
$aCmp = $a['elv_date'];
Le code qui ne fonctionne pas :
$sort = 'elv_date';
$aCmp = $a[$sort];
Quelqu'un a-t'il une idée ?
merci.

Re: manipulation d'un array

Posté : 18 déc. 2010, 03:10
par devlop78
Peux-tu faire un var_dump() de chaque variable et afficher le résultat ici, s'il te plait ?

Re: manipulation d'un array

Posté : 18 déc. 2010, 03:22
par b3f3
Peux-tu faire un var_dump() de chaque variable et afficher le résultat ici, s'il te plait ?
Ca n'est pas vraiment possible car ce code est à l'intérieur d'une fonction. Cette fonction me sert à trier un array. Elle est utilisée avec usort.
Comme ceci :
function cmp($a, $b) {
   $aCmp = $a[elv_date];
   $bCmp = $b[elv_date];
   if ($aCmp == $bCmp) {
      return 0;
   }
   return ($aCmp > $bCmp) ? +1 : -1;
}
usort($arrayRemovals, "cmp");
Dans l'état actuel, elle fonctionne. Mon array est bien trié.
Mais si je déclare $sort = 'elv_date'; et que je remplace les 'elv_date' par $sort, l'array n'est pas trié mais mélangé d'une manière qui parait aléatoire.

Re: manipulation d'un array

Posté : 18 déc. 2010, 03:26
par b3f3
Je viens de comprendre... ma variable $sort n'est pas globale...

Re: manipulation d'un array

Posté : 18 déc. 2010, 03:30
par b3f3
Voici la solution :
$sort='elv_date';
function cmp($a, $b) {
   global $sort;
   $aCmp = $a[$sort];
   $bCmp = $b[$sort];
   if ($aCmp == $bCmp) {
      return 0;
   }
   return ($aCmp > $bCmp) ? +1 : -1;
}
usort($arrayRemovals, "cmp");
Merci devlop78 de t'être intéressé à mon problème.

Re: manipulation d'un array

Posté : 18 déc. 2010, 13:49
par devlop78
De rien :p