Manipuler les tableaux :

Usort :

Avec des chiffres :

La fonction usort() permet de trier un tableau selon un ordre défini par l'utilisateur.

Elle prend en paramètre un tableau et une fonction de comparaison.

La fonction de comparaison prend en paramètre deux éléments du tableau et retourne un entier négatif, nul ou positif.

Si le résultat est négatif, le premier élément est placé avant le second.

Si le résultat est nul, les deux éléments sont laissés dans l'ordre actuel.

Si le résultat est positif, le second élément est placé avant le premier.

Exemple :

            
                <?php
                    $tab = [1, 5, 3, 2, 4];
                    usort($tab, function($a, $b) {
                        return $a - $b;
                    });
                    print_r($tab);
                ?>
            
        

Résultat :

Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

Avec des chaînes de caractères

Exemple :

            
                <?php
                    $tab = ['a', 'e', 'c', 'b', 'd'];
                    usort($tab, function($a, $b) {
                        return $a <=> $b;
                    });
                    print_r($tab);
                ?>
            
        

Résultat : Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )

Avec des chaînes de caractères (ordre inverse)

Exemple :

            
                <?php
                    $tab = ['a', 'e', 'c', 'b', 'd'];
                    usort($tab, function($a, $b) {
                        return $b <=> $a;
                    });
                    print_r($tab);
                ?>
            
        

Résultat : Array ( [0] => e [1] => d [2] => c [3] => b [4] => a )


Uasort :

Avec des chiffres :

La fonction uasort() permet de trier un tableau associatif selon un ordre défini par l'utilisateur.

Elle prend en paramètre un tableau et une fonction de comparaison.

La fonction de comparaison prend en paramètre deux éléments du tableau et retourne un entier négatif, nul ou positif.

Si le résultat est négatif, le premier élément est placé avant le second.

Si le résultat est nul, les deux éléments sont laissés dans l'ordre actuel.

Si le résultat est positif, le second élément est placé avant le premier.

Exemple :

            
                <?php
                    $tab = [
                        'cle1' => 1,
                        'cle2' => 5,
                        'cle3' => 3,
                        'cle4' => 2,
                        'cle5' => 4
                    ];
                    uasort($tab, function($a, $b) {
                        return $a - $b;
                    });
                    print_r($tab);
                ?>
            
        

Résultat : Array ( [cle1] => 1 [cle4] => 2 [cle3] => 3 [cle5] => 4 [cle2] => 5 )

Avec des chaines de caractères :

Exemple :

            
                <?php
                    $tab = [
                        'cle1' => 'a',
                        'cle2' => 'e',
                        'cle3' => 'c',
                        'cle4' => 'b',
                        'cle5' => 'd'
                    ];
                    uasort($tab, function($a, $b) {
                        return $a <=> $b;
                    });
                    print_r($tab);
                ?>
            
        

Résultat : Array ( [cle1] => a [cle4] => b [cle3] => c [cle5] => d [cle2] => e )