PHP - Tri tableau multidimensionnel en 1 ligne

PHP

[12/03/2019] Tri tableau multidimensionnel en 1 ligne

Sort multidimensional array with one line using plain PHP

Tri tableau multidimensionnel en 1 ligne

Si comme moi, vous êtes adepte de code court, quand c'est possible, voici une astuce en PHP qui vous permettra de trier un tableau PHP multidimensionnel par clé en une seule ligne.

Prenons ce tableau multidimensionnel par exemple :
$array = array(
    array('name' => 'Bill',       'weight' => 77),
    array('name' => 'Roger',      'weight' => 105),
    array('name' => 'Arthur',     'weight' => 64),
    array('name' => 'Paul',       'weight' => 89),
    array('name' => 'Christophe', 'weight' => 56),
    array('name' => 'Jeannette',  'weight' => 62),
    array('name' => 'Karl',       'weight' => 78),
);

Vous souhaitez trier ce tableau par les noms (clé : name) :
array_multisort( array_column($array, "name"), SORT_ASC, $array );

Vous souhaitez trier ce tableau par les poids (clé : weight) :
array_multisort( array_column($array, "weight"), SORT_ASC, $array );

Vous avez donc trier ce tableau dans l'ordre croissant suivant les clés.
Maintenant vous pouvez effectuer les mêmes tris par ordre décroissant.
Trions alors ce tableau par ordre décroissant par les noms (clé : name) :
array_multisort( array_column($array, "name"), SORT_DESC, $array );

Et maintenant, trions ce tableau par ordre décroissant par les poids (clé : weight) :
array_multisort( array_column($array, "weight"), SORT_DESC, $array );

Astuce simple et pourtant très efficace.

Bon code ;-)

© 2005 - 2019 • INFORMATUX