Utilisation de la fonction array_multisort

vincentstryckmans
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006
- 20 févr. 2006 à 08:04
vincentstryckmans
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006
- 20 févr. 2006 à 11:49
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

malalam
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
2 mars 2010
25
20 févr. 2006 à 09:21
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 () ?
0
vincentstryckmans
Messages postés
228
Date d'inscription
lundi 5 avril 2004
Statut
Membre
Dernière intervention
25 octobre 2006

20 févr. 2006 à 11:49
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.
0