natsort

(PHP 4 )

natsort --  Tri d'un tableau avec l'algorithme à "ordre naturel"

Description

void natsort ( array array)

natsort() implémente un algorithme de tri qui traite les chaînes alpha-numériques comme un être humain : c'est ce qui est appelé l'"ordre naturel". Un exemple de la différence de traitement entre un tel algorithme et un algorithme de tri de chaînes (comme lorsqu'on utilise sort()) est illustré ci-dessous :

Exemple 1. Exemple avec natsort()

<?php
$array1
= $array2 = array ("img12.png", "img10.png", "img2.png", "img1.png");

sort($array1);
echo
"Tri standard\n";
print_r($array1);

natsort($array2);
echo
"Tri en ordre naturel\n";
print_r($array2);
?>

Le code ci-dessus va afficher :

Tri standard
Array
(
    [0] => img1.png
    [1] => img10.png
    [2] => img12.png
    [3] => img2.png
)
Tri en ordre naturel
Array
(
    [3] => img1.png
    [2] => img2.png
    [1] => img10.png
    [0] => img12.png
)
Pour plus de détails, rendez-vous sur le site de Martin Pool : Natural Order String Comparison.

Note : Si vous souhaitez conserver la relation clé/valeur, utilisez plutôt uasort($arr, 'strnatcmp').

Voir aussi natcasesort(), strnatcmp() et strnatcasecmp().