(PHP 4, PHP 5, PHP 7, PHP 8)
natcasesort — Ordena un array con el algoritmo de "orden natural" insensible a mayúsculas y minúsculas
natcasesort() es la versión insensible a mayúsculas y minúsculas de natsort() .
Esta función implementa un algoritmo de ordenación que trata las cadenas alfanuméricas del array array
como lo haría un ser humano, manteniendo la relación clave/valor. Esto se conoce como "orden natural".
Nota: Si dos miembros se comparan como iguales, mantienen su orden original. Anterior a PHP 8.0.0, su orden relativo en el array ordenado no está definido.
Nota: Reinicia el puntero interno del array al primer elemento.
arrayEl array de entrada.
Retorna siempre true .
| Versión | Descripción |
|---|---|
| 8.2.0 |
El tipo de retorno es ahora true , anteriormente era bool .
|
Ejemplo #1 Ejemplo con natcasesort()
<?php
$array1 = $array2 = array('IMG0.png', 'img12.png', 'img10.png', 'img2.png', 'img1.png', 'IMG3.png');
sort($array1);
echo "Ordenación estándar\n";
print_r($array1);
natcasesort($array2);
echo "\nOrdenación en orden natural (insensible a mayúsculas y minúsculas)\n";
print_r($array2);
?>El ejemplo anterior mostrará:
Ordenación estándar Array ( [0] => IMG0.png [1] => IMG3.png [2] => img1.png [3] => img10.png [4] => img12.png [5] => img2.png ) Ordenación en orden natural (insensible a mayúsculas y minúsculas) Array ( [0] => IMG0.png [4] => img1.png [3] => img2.png [5] => IMG3.png [2] => img10.png [1] => img12.png )
Para más detalles, visite el sitio de Martin Pool sobre » la comparación de cadenas en orden natural.
Something that should probably be documented is the fact that both natsort and natcasesort maintain the key-value associations of the array. If you natsort a numerically indexed array, a for loop will not produce the sorted order; a foreach loop, however, will produce the sorted order, but the indices won't be in numeric order. If you want natsort and natcasesort to break the key-value associations, just use array_values on the sorted array, like so:
natcasesort($arr);
$arr = array_values($arr);