2009-12-18 6 views
4

J'ai besoin de trier les tableaux à l'intérieur d'un tableau de tableau en fonction de l'une des valeurs du tableau.Comment trier des tableaux dans un tableau?

Par exemple:

$data = array(array(1, "Article One", 132, 12402773, 3), 
       array(2, "Article Two", 251, 12519283, 5), 
       array(3, "Article Three", 107, 12411321, 3), 
       array(4, "Article Four", 501, 12228135, 4)); 

Par défaut, si j'imprime le 2ème élément de chaque tableau:

  • Article premier
  • Article Deux
  • Article Trois
  • Article Quatre

J'ai besoin de trier dans un ordre décroissant par le 3ème élément de la matrice enfant.

Il serait donc comme ceci:

  • Article Quatre
  • Article Deux
  • Article premier
  • Article Trois

Parce que 501> 251> 132> 107.

Une suggestion?

Répondre

7

J'utilise généralement un usort() pour cela:

function compare($a, $b) { 
    return ($a[2] > $b[2]); 
} 

usort($data, 'compare'); 
+4

C'est l'une de mes fonctions préférées en php, en particulier avec la variante uasort qui préserve les clés. – Dave

+0

Je suis d'accord c'est la voie à suivre. usort/uasort en fonction de la situation. – mmundiff

+0

Une meilleure façon serait d'utiliser une fermeture: 'usort ($ data, fonction ($ a, $ b) { return $ a [2]> $ b [2]; });' – Xethron

Questions connexes