sort( $new, SORT_NATURAL | SORT_FLAG_CASE )

问题描述 投票:0回答:3
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 sorting
3个回答
11
投票

《PHP 手册》指出 natsort ($array) 相当于

sort($array,SORT_NATURAL);
,它还指出
SORT_FLAG_CASE
直到 5.4.0 才添加。

您可以使用

natcasesort($array)

,相当于 
sort($array,SORT_NATURAL | SORT_FLAG_CASE)
    


2
投票
natsort($array)

sort($array, SORT_NATURAL)
之间需要注意的重要区别是关键关联。

natsort()

维护键关联,这意味着键和值保持链接。


但是,

sort()

并不主要关联,因此值会根据新顺序重新分配键。

    


0
投票

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"
    }
*/

© www.soinside.com 2019 - 2024. All rights reserved.