PHP : tri d'un tableau à plusieurs colonnes

Fermé
peek44 - 1 avril 2011 à 22:08
 le père - 4 avril 2011 à 16:15
Bonjour,

Je souhaiterai pouvoir trier un tableau à plusieurs colonnes en PHP.
Voici le code correspondant à la déclaration du tableau :

$toto[]=array("dept"=>"59","ville"=>"Lille");
$toto[]=array("dept"=>"13","ville"=>"Marseille");
$toto[]=array("dept"=>"75","ville"=>"Paris");
$toto[]=array("dept"=>"33","ville"=>"Bordeaux");
$toto[]=array("dept"=>"44","ville"=>"Nantes");

Je voudrai que la donnée ville ressort de façon alphabétique selon :
Bordeaux
Lille
Marseille
Nantes
Paris

J'ai testé avec sort, asort, array_multisort mais j'obtiens toujours des messages d'erreurs, est-ce que quelqu'un aurait la solution ?

Merci d'avance
A voir également:

2 réponses

Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
4 avril 2011 à 15:32
Bonjour,

jette un oeil a asort():

https://www.php.net/manual/fr/function.asort.php
0
Bonjour


avec usort :
<?php

function MaFonctionTri($element1,$element2) {

// comparer les noms de villes
  if ($element1['ville'] < $element2['ville'] ) return -1;
  if ($element1['ville'] > $element2['ville'] ) return 1;

// si même ville, comparer les départements  
  if ($element1['dept'] == $element2['dept'] ) return 0;
  return ($element1['ville'] < $element2['ville'] ) ?-1:1;
}
?>

<?php
$toto[]=array("dept"=>"59","ville"=>"Lille");
$toto[]=array("dept"=>"13","ville"=>"Marseille");
$toto[]=array("dept"=>"75","ville"=>"Paris");
$toto[]=array("dept"=>"33","ville"=>"Bordeaux");
$toto[]=array("dept"=>"44","ville"=>"Nantes");

  usort($toto,'MaFonctionTri');
  echo '<table>';
  foreach ($toto as $UneVille) {
    echo '<tr><td>',$UneVille['ville'],'</td><td>',$UneVille['dept'],'</td></tr>';
  } 
echo '</table>';
?>
0