Array sizes are inconsistent

Répondre
marco44
Administrateur du site
Messages : 86
Enregistré le : jeu. 1 janv. 2009 13:00

Array sizes are inconsistent

Message par marco44 » lun. 7 oct. 2013 14:38

Lors du tri de mon tableau, j’obtiens le message : Warning : array_multisort() [function.array-multisort] : Array sizes are inconsistent in xxxxxxxxx on line 1234

Je ne comprends pas pourquoi car j’ai repris un morceau de code qui fonctionnait ?

Voici le code utilisé en résumé.

Code : Tout sélectionner

Initialisation de la valeur de référence
 // Initialisation du tableau
 $contenuDate=array() ;
 Début Boucle
 | Si la valeur de lue est différente de la valeur de référence
 | | et si la valeur de référence n’est pas vide Alors
 | | // Tri du tableau
 | | foreach ($contenuDate as $key=>$valeur) 
 | | $colDate[$key] = $key ;
 | | 
 | | array_multisort($colDate,SORT_DESC,$contenuDate) ;
 | | // Affichage du tableau trié
 | | // Initialisation du tableau
 | | $contenuDate=array() ;
 | | // Initialisation de la valeur de référence avec la valeur lue
 | Fin Si
 | // remplissage du tableau
 | $contenuDate[$CPT_DATE][’val 1’] += $val1 ;
 | $contenuDate[$CPT_DATE][’val 2’] += $val2 ;
 | $contenuDate[$CPT_DATE][’val 3’] += $val3 ;
 Fin Boucle
 Si la dernière valeur de lue est différente de la valeur de référence
 | et si la valeur de référence n’est pas vide Alors
 | // Tri du tableau
 | foreach ($contenuDate as $key=>$valeur) 
 | $colDate[$key] = $key ;
 | 
 | array_multisort($colDate,SORT_DESC,$contenuDate) ;
 | // Affichage du tableau trié
 | // Initialisation du tableau
 | $contenuDate=array() ;
 Fin Si
Par avance merci

marco44
Administrateur du site
Messages : 86
Enregistré le : jeu. 1 janv. 2009 13:00

Re: Array sizes are inconsistent

Message par marco44 » lun. 7 oct. 2013 14:39

Dans le code indiqué, il manque la réinitialisation du tableau contenant les valeurs servant pour le tri.
Il faut donc ajouter avant chaque tri, la commande :

Code : Tout sélectionner

 $colDate=array() ;
En fait, le tableau servant au tri n’étant pas remis à zéro il contient plus de ligne que le tableau à trier - d’où le message d’erreur avec "array sizes".

Répondre