[PHP] Problème avec array_multisort

WRInaute accro
J'ai un problème avec array_multisort.

Je l'appelle dans une fonction.

Si je fais l'appel suivant :

array_multisort ($tab1, $tab2)

les variables $tab1 et $tab2 ne sont pas modifiées.

Si je fais l'appel suivant :

array_multisort (&$tab1, &$tab2)

les variables $tab1 et $tab2 sont modifiées.
Cependant, dans ce cas, j'ai le message d'avertissement suivant :

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of array_multisort(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in [MONURL]

Or, je ne sais pas modifierla déclaration de array_multisort, puisqu'il s'agit d'une fonction PHP.

Comment rendre mon code conforme aux dernières versions de PHP ?

Merci pour votre aide !
 
WRInaute occasionnel
hmm, je me doute bien que PHP n'aime pas trop les &$tab1 ;)

si tes tableaux ne sont pas modifiés, c'est peut-être que ta fonction n'y a pas accès et que le error_reporting est désactivé ?
essaye de récupérer tes tableaux avec un
Code:
global $tab1, $tab2
avant l'array_multisort...
c'est tout ce qui me vient à l'esprit sans voir le code (au pire, -> MP)
 
WRInaute accro
Oui, reste les variables globales, mais bon, j'ai essayé de faire un code propre, alors j'évite d'en ajouter ;-) !

Edit : J'affiche le contenu des tableaux avant et après array_multisort, dans la fonction.
 
WRInaute accro
En fait, si je fais :

Code:
$tab11 = $tab1;
$tab22 = $tab2;
array_multisort ($tab11, $tab22);
$tab1 = $tab11;
$tab2 = $tab22;

là, ça marche...

Bizarre, non ?
 
WRInaute accro
Didier_S a dit:
$tab1 et $tab2 sont déclarés normalement, puis passés en paramètre ?
si oui, en effet c'est bizarre!

function MaFonction (&$tab1, &$tab2)
{
...
array_multisort ($tab1, SORT_DESC, $tab2, SORT_ASC);
...
}

MaFonction ($tab1, $tab2);
 
Discussions similaires
Haut