Rechercher une fonction PHP

natsort

(PHP 4, PHP 5, PHP 7)

natsortTrie un tableau avec l'algorithme à "ordre naturel"

Description

bool natsort ( array &$array )

natsort() implémente un algorithme de tri qui traite les chaînes alphanumériques du tableau array comme un être humain tout en conservant la relation clé/valeur. 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.

Note:

Si deux membres se comparent comme égaux, leur ordre relatif dans le tableau trié n'est pas défini.

  

Liste de paramètres

array

Le tableau d'entrée.

  

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

  

Historique

Version Description
5.2.10 Les chaines numériques alignées par des zéros (e.g., '00005') ignorent les zéros d'alignement.

  

Exemples

Exemple #1 Exemple d'utilisation de base avec natsort()

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

asort($array1);
echo 
"Standard sorting\n";
print_r($array1);

natsort($array2);
echo 
"\nNatural order sorting\n";
print_r($array2);
?>

L'exemple ci-dessus va afficher :

Standard sorting
Array
(
    [3] => img1.png
    [1] => img10.png
    [0] => img12.png
    [2] => img2.png
)

Natural order sorting
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 sur » la comparaison de chaînes en ordre naturel.

Exemple #2 Exemples montrant les pièges de natsort()

<?php
echo "Nombres négatifs\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo 
"Alignement avec zéros\n";
$zeros = array('09''8''10''009''011''0'); 
print_r($zeros);
natsort($zeros);
print_r($zeros);
?>

L'exemple ci-dessus va afficher :

Nombres négatifs
Array
(
    [0] => -5
    [1] => 3
    [2] => -2
    [3] => 0
    [4] => -1000
    [5] => 9
    [6] => 1
)
Array
(
    [2] => -2
    [0] => -5
    [4] => -1000
    [3] => 0
    [6] => 1
    [1] => 3
    [5] => 9
)

Alignement avec zéros
Array
(
    [0] => 09
    [1] => 8
    [2] => 10
    [3] => 009
    [4] => 011
    [5] => 0
)
Array
(
    [5] => 0
    [1] => 8
    [3] => 009
    [0] => 09
    [2] => 10
    [4] => 011
)

  

Voir aussi

  • natcasesort() - Trie un tableau avec l'algorithme à "ordre naturel" insensible à la casse
  • Les fonctions de tri des tableaux
  • strnatcmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel"
  • strnatcasecmp() - Comparaison de chaînes avec l'algorithme d'"ordre naturel" (insensible à la casse)

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.natsort.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut