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

SORT(3) 								 1								   SORT(3)

sort - Sort an array

SYNOPSIS
bool sort (array &$array, [int $sort_flags = SORT_REGULAR]) DESCRIPTION
This function sorts an array. Elements will be arranged from lowest to highest when this function has completed. PARAMETERS
o $array - The input array. o $sort_flags - The optional second parameter $sort_flags may be used to modify the sorting behavior using these values: Sorting type flags: o SORT_REGULAR - compare items normally (don't change types) o SORT_NUMERIC - compare items numerically o SORT_STRING - compare items as strings o SORT_LOCALE_STRING - compare items as strings, based on the current locale. It uses the locale, which can be changed using setlocale(3) o SORT_NATURAL - compare items as strings using "natural ordering" like natsort(3) o SORT_FLAG_CASE - can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively RETURN VALUES
Returns TRUE on success or FALSE on failure. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.4.0 | | | | | | | Added support for SORT_NATURAL and | | | SORT_FLAG_CASE as $sort_flags | | | | | 5.0.2 | | | | | | | Added SORT_LOCALE_STRING | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 sort(3) example <?php $fruits = array("lemon", "orange", "banana", "apple"); sort($fruits); foreach ($fruits as $key => $val) { echo "fruits[" . $key . "] = " . $val . " "; } ?> The above example will output: fruits[0] = apple fruits[1] = banana fruits[2] = lemon fruits[3] = orange The fruits have been sorted in alphabetical order. Example #2 sort(3) example using case-insensitive natural ordering <?php $fruits = array( "Orange1", "orange2", "Orange3", "orange20" ); sort($fruits, SORT_NATURAL | SORT_FLAG_CASE); foreach ($fruits as $key => $val) { echo "fruits[" . $key . "] = " . $val . " "; } ?> The above example will output: fruits[0] = Orange1 fruits[1] = orange2 fruits[2] = Orange3 fruits[3] = orange20 The fruits have been sorted like natcasesort(3). NOTES
Note This function assigns new keys to the elements in $array. It will remove any existing keys that may have been assigned, rather than just reordering the keys. Note Like most PHP sorting functions, sort(3) uses an implementation of Quicksort. The pivot is chosen in the middle of the partition resulting in an optimal time for already sorted arrays. This is however an implementation detail you shouldn't rely on. Warning Be careful when sorting arrays with mixed types values because sort(3) can produce unpredictable results. SEE ALSO
asort(3), The comparison of array sorting functions. PHP Documentation Group SORT(3)
Man Page