Cette classe permet de trier un tableau selon l'index ord (dans de mon exemple)
Copier le code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 class Ord { /** * Permet de comparer 2 chaine et de déterminer laquelle est supérieure à l'autre * Est utilisé dans le trie de tableau 'usort' * @param string $a 1ere chaine * @param string $b 2eme chaine * @return int Retourne un entier inférieur à, égal à, ou supérieur à 0 * si le 1er argument est considéré comme, * respectivement, inférieur à, égal à, ou supérieur au second. */ private function comparer($a, $b) { return strcmp($a['ord'], $b['ord']); } public function get() { return usort($this->data, array('Ord', 'comparer')); } }
Il faut l'utiliser de cette façon
Copier le code
1 2 3 4 5 $test = new Ord(); $test->data = array('initOrd' => 1 , 'ord' => 3); $test->data = array('initOrd' => 2 , 'ord' => 1); $test->data = array('initOrd' => 3 , 'ord' => 2); $test->get();
Et voilà le tableau trié selon la valeur de la clé ord :
Copier le code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Array ( [0] => Array= ( [initOrd] => 2 [ord] => 1 ) [1] => Array ( [initOrd] => 3 [ord] => 2 ) [2] => Array ( [initOrd] => 1 [ord] => 3 ) )