Utilisation de la fonction array_multisort

Signaler
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006
-
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006
-
Bonjour,
J'ai un petit souci avec la fonction array_multisort. Je m'explique :

En exécutant 2 requêtes sql, l'une après l'autre, je remplis quatre array avec le résultat de ces requêtes :

while (!($recordset_nonoff->EOF))
{ $_SESSION['link_ididentif_resume'][$i] = $recordset_nonoff->fields[0];
$_SESSION['link_idavis_resume'][$i] = $recordset_nonoff->fields[1];
$_SESSION['link_num_relation_resume'][$i] = $recordset_nonoff->fields[2];
$_SESSION['link_database'][$i] = 'non_off';
}

Ensuite, je veux trier les quatre array en utilisant $_SESSION['link_num_relation_resume'] comme clef :

array_multisort ($_SESSION['link_num_relation_resume'], SORT_ASC, SORT_REGULAR,$_SESSION['link_ididentif_resume'], $_SESSION['link_idavis_resume'], $_SESSION['link_database']);

A l'exécution du script, je reçois l'erreur :

Warning: array_multisort(): Array sizes are inconsistent in d:\webroot\administrator_area\resume_officiel\lire_link_resume_officiel.php on line 368

et les arrays ne sont pas triées. J'ai vérifié la taille des array via size_of et elles sont identiques.

Où est le problème svp?

Merci de votre aide.

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.
A voir également:

2 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

à priori, l'erreur te dit que les (ou un) tableau n'est pas rempli (ou peut-être ne possède qu'une entrée). Néanmoins je n'ai jamais rencontré cette erreur.
Es-tu sûr de la taille de tes tableaux au moment où tu fais l'array_multisort () ?
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006

Salut Malalam,

J'ai fait un echo des sizeof juste avant de trier les array et j'ai bien confirmation qu'elles ont toutes la même taille. Exemple :
Code :
if ($idata_base->debug)
{ echo "-----
";
echo "Size of link_num_relation_resume : ".sizeof($_SESSION['link_ididentif_resume'])."
";
echo "Size of link_ididentif_resume : ".sizeof($_SESSION['link_ididentif_resume'])."
";
echo "Size of link_idavis_resume : ".sizeof($_SESSION['link_idavis_resume'])."
";
echo "Size of link_database : ".sizeof($_SESSION['link_database'])."
";
}
array_multisort ($_SESSION['link_num_relation_resume'], SORT_ASC, SORT_REGULAR,$_SESSION['link_ididentif_resume'], $_SESSION['link_idavis_resume'], $_SESSION['link_database']);

Affiché :
-----
Size of link_num_relation_resume : 28
Size of link_ididentif_resume : 28
Size of link_idavis_resume : 28
Size of link_database : 28


Warning: array_multisort(): Array sizes are inconsistent in d:\webroot\administrator_area\resume_officiel\lire_link_resume_officiel.php on line 375

Le fait que les array ne contiennent pas des données du même type ne poserait-il pas un problème ?

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans.