Page 1 sur 1

trie sur tableau a plusieurs colonne

Posté : 05 févr. 2010, 17:38
par Invité
Bonjour,

je fais un tableau de cette manière :
$tab[$i] = array( 
'mat'=>$ree[0], 
'dat'=>$ree[1], 
'charg'=>$ree[2], 
'com'=>$ree[3], );
}
je souhaite faire un trie, mais lorsque je fais :
array_multisort(charg, SORT_ASC,  com, SORT_ASC);
rien ne change ?

Y a t il un autre moyen ?

merci

Re: trie sur tableau a plusieurs colonne

Posté : 06 févr. 2010, 09:02
par niuxe
Hello,

Avec si peu de données, pas facile de t'aider. Cependant, je pense savoir pourquoi tu n'as pas le résultat attendu.

<mode hypothese="on">
Simple erreur de logique et de syntaxe... Je crois que tu veux dire ceci :
array_multisort($tab["charg"], SORT_ASC,  $tab["com"],  SORT_ASC);
ou
array_multisort($tab, SORT_ASC);
Logiquement, $tab devrait plutôt être comme cela et ne devrait pas être dans une boucle :
$tab = array(
'mat'=>$mat,
'dat'=>$dat,
'charg'=>$charg,
'com'=>$com, );
</mode>

À moins que tu gardes secrètement l'application que tu es en train de faire, je crois qu'il serait intéressant de mettre un peu plus sur le forum. Je crois que ton script est bancal.

Bonne journée à toi

Re: trie sur tableau a plusieurs colonne

Posté : 08 févr. 2010, 10:32
par Invité
Bonjour,
j'extrais juste les données de ma base, et je l'ai met dans un tableau, quand je fais un print_r, mon tableau s'affiche bien comme il faut, sauf qu'il faut que je trie selon 2 colonnes. Je ne peux pas le faire auparavant dans ma requête, car j'extrais selon des critères bien particulier.


voici un extrait de que cela m'affiche :
Array ( [mat] => AD101 [dat] => 2010-01-01 [charg] => Vanessa [com] => 2 ) Array ( [mat] => AD111 [dat] => 2010-01-01 [charg] => Jessie [com] => 3 ) Array ( [mat] => AD112 [dat] => 2009-11-01 [charg] => Jessie [com] => 3 ) Array ( [mat] => AD113 [dat] => 2010-01-01 [charg] => Jessie [com] => 3 ) 
donc j'ai tester pour trier :
array_multisort(charg, SORT_ASC,  com, SORT_ASC);
ou
array_multisort($tab["charg"], SORT_ASC,  $tab["com"],  SORT_ASC);
mais cela ne change rien à mon affichage.

Re: trie sur tableau a plusieurs colonne

Posté : 08 févr. 2010, 12:14
par niuxe
Hello,
Bonjour,
j'extrais juste les données de ma base, et je l'ai met dans un tableau, quand je fais un print_r, mon tableau s'affiche bien comme il faut, sauf qu'il faut que je trie selon 2 colonnes. Je ne peux pas le faire auparavant dans ma requête, car j'extrais selon des critères bien particulier.
[...]
Hum, je suis curieux de voir ta requête.
SELECT * FROM une_table WHERE un_champ > 1 OR un_autre_champ = "une valeur" ORDER BY un_champ, un_autre_champ; 
#un_autre_champ sera trier en fonction de un_champ.
Et en php :
$donnees = array(
    array("prenom" => "Ginette" , "taille" => 155),
    array("prenom" => "Olga" , "taille" => 185),
    array("prenom" => "Marcel" , "taille" => 175),
    array("prenom" => "Thérèse" , "taille" => 170),
    array("prenom" => "Susanne" , "taille" => 170),
    array("prenom" => "Charlotte" , "taille" => 171),
);
foreach($donnees as $k => $v){
    $prenom[$k] = $v["prenom"];
    $taille[$k] = $v["taille"];
}

array_multisort($prenom,SORT_ASC,$taille,SORT_ASC,$donnees);
        echo "<pre>";
        print_r($donnees);
        echo "</pre>";