Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

natsort(3) [php man page]

NATSORT(3)								 1								NATSORT(3)

natsort - Sort an array using a ";natural order" algorithm

SYNOPSIS
bool natsort (array &$array) DESCRIPTION
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(3)) can be seen in the example below. PARAMETERS
o $array - The input array. RETURN VALUES
Returns TRUE on success or FALSE on failure. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ |5.2.10 | | | | | | | Zero padded numeric strings (e.g., '00005') now | | | essentially ignore the 0 padding. | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 natsort(3) examples demonstrating basic usage <?php $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); asort($array1); echo "Standard sorting "; print_r($array1); natsort($array2); echo " Natural order sorting "; print_r($array2); ?> The above example will output: 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 ) For more information see: Martin Pool's Natural Order String Comparison page. Example #2 natsort(3) examples demonstrating potential gotchas <?php echo "Negative numbers "; $negative = array('-5','3','-2','0','-1000','9','1'); print_r($negative); natsort($negative); print_r($negative); echo "Zero padding "; $zeros = array('09', '8', '10', '009', '011', '0'); print_r($zeros); natsort($zeros); print_r($zeros); ?> The above example will output: Negative numbers 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 ) 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 ) SEE ALSO
natcasesort(3), The comparison of array sorting functions, strnatcmp(3), strnatcasecmp(3). PHP Documentation Group NATSORT(3)

Check Out this Related Man Page

UASORT(3)								 1								 UASORT(3)

uasort - Sort an array with a user-defined comparison function and maintain index association

SYNOPSIS
bool uasort (array &$array, callable $value_compare_func) DESCRIPTION
This function sorts an array such that array indices maintain their correlation with the array elements they are associated with, using a user-defined comparison function. This is used mainly when sorting associative arrays where the actual element order is significant. Note If two members compare as equal, their relative order in the sorted array is undefined. PARAMETERS
o $array - The input array. o $value_compare_func - See usort(3) and uksort(3) for examples of user-defined comparison functions. RETURN VALUES
Returns TRUE on success or FALSE on failure. EXAMPLES
Example #1 Basic uasort(3) example <?php // Comparison function function cmp($a, $b) { if ($a == $b) { return 0; } return ($a < $b) ? -1 : 1; } // Array to be sorted $array = array('a' => 4, 'b' => 8, 'c' => -1, 'd' => -9, 'e' => 2, 'f' => 5, 'g' => 3, 'h' => -4); print_r($array); // Sort and print the resulting array uasort($array, 'cmp'); print_r($array); ?> The above example will output: Array ( [a] => 4 [b] => 8 [c] => -1 [d] => -9 [e] => 2 [f] => 5 [g] => 3 [h] => -4 ) Array ( [d] => -9 [h] => -4 [c] => -1 [e] => 2 [g] => 3 [a] => 4 [f] => 5 [b] => 8 ) SEE ALSO
usort(3), The comparison of array sorting functions. PHP Documentation Group UASORT(3)
Man Page