Tri d'un tableau bi-dimensionnel
Par Olivier HUET, mercredi 14 septembre 2005 à 23:22 :: Trucs et Astuces PHP :: #1874 :: rss
Je viens d'avoir le problème suivant : comment trié un tableau comportant plusieurs colonnes en fonction de la seconde ou de la troisième colonne. Bref en fonction d'une autre que la première.
Si vous utilisé la fonction sort(), ce n'est pas possible. Il faut en fait opérer de la facon suivante :
<?php
// Initialisation d'un tableau de 2 colonne
$tab[0]=array('mot'=> 'exemple', 'traduction' => 'sample');
$tab[1]=array('mot'=> 'chien', 'traduction' => 'dog');
$tab[2]=array('mot'=> 'chat', 'traduction' => 'cat');
// Tri du tableau en fonction de la colonne traduction
asort($tab['traduction']);
// Copie dans un tableau nouveau tableau
// afin d'obtenir un tableau avec des index propres
$final=array();
$i=0;
foreach($tab['traduction'] as $cle => $valeur) {
$final['mot'][$i]=$tab['mot'][$cle];
$final['traduction'][$i]=$tab['traduction'][$cle];
$i++;
}
?>
Et voila un beau tableau trier en fonction de la seconde colonne. Attention toutefois, le tri est case-sensitive. Ce qui peut conduire à des résultats surprenants. Cf truc et astuces sur le tri alphabétique.
Proposé par Olivier HUET






Commentaires
#1 - Le dimanche 26 février 2006 à 12:40, par Condutiarii
#2 - Le dimanche 26 février 2006 à 12:53, par Condutiarii
#3 - Le lundi 24 avril 2006 à 14:53, par Stéphanie
#4 - Le mercredi 3 mai 2006 à 13:41, par iwolss
#5 - Le mercredi 2 août 2006 à 06:05, par Olivier Huet
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.