The natsort
and natcasesort
functions sort arrays using a Natural Order Sorting algorithm. Both functions are identical except the natcasesort
function ignores the case. These functions implement a sort algorithm that orders alphanumeric strings in the way a human being would while maintaining key/value associations. Both functions accept only one parameter, the input array.
<?php
$a = ['A1','A3','B1','A22','B3','B22'];
natsort ($a);
print_r ($a);
/*Prints:
Array
(
[0] => A1
[3] => A3
[1] => A22
[2] => B1
[5] => B3
[4] => B22
)*/
The above code maintained the key/value association, replace natsort($a)
line with sort($a, SORT_NATURAL)
code if you want to reset/rearrange the array index:
<?php
//natsort ($a);
sort ($a, SORT_NATURAL);
print_r($a);
/*Prints:
Array
(
[0] => A1
[1] => A3
[2] => A22
[3] => B1
[4] => B3
[5] => B22
) */
Follow this link to read about the array sorting flags.
Sorting IP Addresses
<?php
$a = ['192.168.0.1',
'192.168.0.254',
'192.168.1.2',
'192.168.0.233',
'192.167.5.3'
];
natsort ($a);
print_r ($a);
/*Prints:
Array
(
[4] => 192.167.5.3
[0] => 192.168.0.1
[3] => 192.168.0.233
[1] => 192.168.0.254
[2] => 192.168.1.2
)*/
More Posts on PHP Sorting Arrays: