sort( $new, SORT_NATURAL | SORT_FLAG_CASE );
SORT_NATURAL 是 php 5.4 中的新功能,但我在本地主机(ubuntu 12.04)上运行 5.3.10,因此并不打算升级。
php 5.3 中的等效项是什么,我读过它就像 natsort 一样。
natsort( $new, SORT_FLAG_CASE );
一样吗?
《PHP 手册》指出 natsort ($array)
相当于
sort($array,SORT_NATURAL);
,它还指出 SORT_FLAG_CASE
直到 5.4.0 才添加。您可以使用
,相当于
sort($array,SORT_NATURAL | SORT_FLAG_CASE)
。natsort($array)
和
sort($array, SORT_NATURAL)
之间需要注意的重要区别是关键关联。 natsort()
维护键关联,这意味着键和值保持链接。
但是,
sort()
并不主要关联,因此值会根据新顺序重新分配键。
sort
将重新索引元素:
$arr1 = [
'john' => '10 years',
'mary' => '2 years',
'ivan' => '20 years',
];
sort($arr1, SORT_NATURAL);
var_dump($arr1);
/*
array(3) {
[0]=>
string(7) "2 years"
[1]=>
string(8) "10 years"
[2]=>
string(8) "20 years"
}
*/
natsort
将保留密钥:
$arr2 = [
'john' => '10 years',
'mary' => '2 years',
'ivan' => '20 years',
];
natsort($arr2);
var_dump($arr2);
/*
array(3) {
["mary"]=>
string(7) "2 years"
["john"]=>
string(8) "10 years"
["ivan"]=>
string(8) "20 years"
}
*/