Here my array structure :
Array ( [33] => Array ( [id_site] => 33 [datas] => Array ( [id] => 2965 [site_id] => 33 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0119 ) [32] => Array ( [id_site] => 32 [datas] => Array ( [id] => 1929 [site_id] => 32 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0114 ) [34] => Array ( [id_site] => 34 [datas] => Array ( [id] => 2230 [site_id] => 34 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0128 ) )
How to sort by the [sort] value inside my array ?
I have to use the usort() function :
function sortByCustom($a, $b) { return strcmp($a['sort'], $b['sort']); } ... usort($array, 'sortByCustom');
Here the result :
Array ( [0] => Array ( [id_site] => 32 [datas] => Array ( [id] => 1929 [site_id] => 32 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0114 ) [1] => Array ( [id_site] => 33 [datas] => Array ( [id] => 2965 [site_id] => 33 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0119 ) [2] => Array ( [id_site] => 34 [datas] => Array ( [id] => 2230 [site_id] => 34 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0128 ) )
If you want to maintain the index value association, use the uasort() function
uasort($array, 'sortByCustom');
Here the result :
Array ( [32] => Array ( [id_site] => 32 [datas] => Array ( [id] => 1929 [site_id] => 32 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0114 ) [33] => Array ( [id_site] => 33 [datas] => Array ( [id] => 2965 [site_id] => 33 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0119 ) [34] => Array ( [id_site] => 34 [datas] => Array ( [id] => 2230 [site_id] => 34 [operation_id] => 20 [positionnement] => 1 ) [statut] => Validé DM [sort] => 0128 ) )
If you use this in a class, you have to define the sort function outside the class
<?php function sortByCustom($a, $b) { return strcmp($a['sort'], $b['sort']); } class positionnemen { ...
for strict number comparaison, you can also use this function
function sortByCustom($a, $b) { if($a['nbr'] > $b['nbr']) { return 1; } return -1; }