natsort
Sort an array using a "natural order" algorithm
&reftitle.description;
boolnatsort
arrayarray
This function implements a sort algorithm that orders alphanumeric strings
in the way a human being would while maintaining key/value associations.
This is described as a "natural ordering". An example of the difference
between this algorithm and the regular computer string sorting algorithms
(used in sort) can be seen in the example below.
&reftitle.parameters;
array
The input array.
&reftitle.returnvalues;
&return.success;
&reftitle.changelog;
&Version;
&Description;
5.2.10
Zero padded numeric strings (e.g., '00005') now essentially ignore the 0 padding.
&reftitle.examples;
natsort examples demonstrating basic usage
]]>
&example.outputs;
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
)
]]>
For more information see: Martin Pool's Natural Order String Comparison
page.
natsort examples demonstrating potential gotchas
1, 'apple' => 1, 'yogurt' => 4, 'banana' => 4);
print_r($smoothie);
uksort( $smoothie, 'strnatcmp');
print_r($smoothie);
?>
]]>
&example.outputs;
-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
)
Zero padding
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
)
Other characters interfering
Array
(
[0] => image_1.jpg
[1] => image_12.jpg
[2] => image_21.jpg
[3] => image_4.jpg
)
Array
(
[0] => image_1.jpg
[3] => image_4.jpg
[1] => image_12.jpg
[2] => image_21.jpg
)
Sort by keys
Array
(
[orange] => 1
[apple] => 1
[yogurt] => 4
[banana] => 4
)
Array
(
[apple] => 1
[banana] => 4
[orange] => 1
[yogurt] => 4
)
]]>
&reftitle.seealso;
natcasesort
&seealso.array.sorting;
strnatcmp
strnatcasecmp