Votre navigateur n'est pas à jour !

Merci de mettre à jour votre navigateur pour utiliser mon blog. Mettre à jour mon navigateur maintenant

×

PHP 5 -Tri tableau multidimensionnel avec usort

Date de publication 22 juin 2012
Cette classe permet de trier un tableau selon l'index ord (dans de mon exemple)

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

$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 :

Array
(
    [0] => Array=
        (
            [initOrd] => 2
            [ord] => 1
        )
    [1] => Array
        (
            [initOrd] => 3
            [ord] => 2
        )
    [2] => Array
        (
            [initOrd] => 1
            [ord] => 3
        )
)
blog comments powered by Disqus