IT. Expert System.

PHP

Sort an array using a "natural order" algorithm


natsort

(PHP 4, PHP 5)

natsortSort an array using a "natural order" algorithm

Description

bool natsort ( array &$array )

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.

Parameters

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() examples demonstrating basic usage

<?php
$array1 
$array2 = array("img12.png""img10.png""img2.png""img1.png");

asort($array1);
echo 
"Standard sorting\n";
print_r($array1);

natsort($array2);
echo 
"\nNatural order sorting\n";
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() examples demonstrating potential gotchas

<?php
echo "Negative numbers\n";
$negative = array('-5','3','-2','0','-1000','9','1');
print_r($negative);
natsort($negative);
print_r($negative);

echo 
"Zero padding\n";
$zeros = array('09''8''10''009''011''0'); 
print_r($zeros);
natsort($zeros);
print_r($zeros);

echo 
"Other characters interfering\n";
$images_oops = array('image_1.jpg','image_12.jpg''image_21.jpg''image_4.jpg');
print_r($images_oops);
natsort($images_oops);
print_r($images_oops);

echo 
"Sort by keys\n";
$smoothie = array('orange' => 1'apple' => 1'yogurt' => 4'banana' => 4);
print_r($smoothie);
uksort$smoothie'strnatcmp');
print_r($smoothie);
?>

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 ) 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 ) 

See Also



Content

Android Reference

Java basics

Java Enterprise Edition (EE)

Java Standard Edition (SE)

SQL

HTML

PHP

CSS

Java Script

MYSQL

JQUERY

VBS

REGEX

C

C++

C#

Design patterns

RFC (standard status)

RFC (proposed standard status)

RFC (draft standard status)

RFC (informational status)

RFC (experimental status)

RFC (best current practice status)

RFC (historic status)

RFC (unknown status)

IT dictionary

License.
All information of this service is derived from the free sources and is provided solely in the form of quotations. This service provides information and interfaces solely for the familiarization (not ownership) and under the "as is" condition.
Copyright 2016 © ELTASK.COM. All rights reserved.
Site is optimized for mobile devices.
Downloads: 236 / 158691274. Delta: 0.03090 с