(PHP 4, PHP 5, PHP 7, PHP 8)
natsort — 用“自然排序”算法對(duì)數(shù)組排序
&$array): bool本函數(shù)實(shí)現(xiàn)了一個(gè)和人們通常對(duì)字母數(shù)字字符串進(jìn)行排序的方法一樣的排序算法并保持原有鍵/值的關(guān)聯(lián),這被稱為“自然排序”。本算法和通常的計(jì)算機(jī)字符串排序算法(用于 sort())的區(qū)別見下面示例。
注意:
如果兩個(gè)成員完全相同,那么它們將保持原來的順序。 在 PHP 8.0.0 之前,它們?cè)谂判驍?shù)組中的相對(duì)順序是未定義的。
注意:
重置數(shù)組中的內(nèi)部指針,指向第一個(gè)元素。
array輸入的 array。
總是返回 true 。
示例 #1 natsort() 基本用法的操作示例
<?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);
?>
以上例程會(huì)輸出:
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
)
更多信息見 Martin Pool 的 ? Natural Order String Comparison 頁面。
示例 #2 natsort() 示例,解釋了潛在的陷阱
<?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);
?>
以上例程會(huì)輸出:
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
)