2013-03-15 52 views
7
sort($new, SORT_NATURAL | SORT_FLAG_CASE); 

SORT_NATURAL($新,SORT_NATURAL SORT_FLAG_CASE)是在PHP 5.4新的,但我有5.3.10在我的本地运行(Ubuntu的12.04)没有真正的意图,因为那升级。排序|在PHP 5.3

什么是在PHP 5.3中的等价物,我读过,就像natsort。

natsort($new, SORT_FLAG_CASE);是一样的吗?

+0

5.4是PHP的最新版本。你应该升级。 – Tchoupi 2013-03-15 19:57:38

+3

'natsort'不带标志,但它似乎也有一个不区分大小写的'natcasesort',会导致我相信'natsort'是大小写敏感*。所以我想你想要'natcasesort($ new)'。 – 2013-03-15 20:02:05

+0

natsort()不支持额外的参数。你不能传递任何标志,所以不......它不是等价的:http://php.net/nat_sort – 2013-03-15 20:02:11

回答

11

PHP Manual指出natsort ($array)等于sort($array,SORT_NATURAL);它也指出SORT_FLAG_CASE直到5.4.0都没有加入。

您可以使用相当于sort($array,SORT_NATURAL | SORT_FLAG_CASE)natcasesort($array)

1

尽管它们基本相同,但natsort($array)sort($array, SORT_NATURAL)之间的重要区别是关键关联。

natsort()维护密钥关联,这意味着密钥和值保持关联。

但是,sort()不是主要关联,所以值是根据它们的新顺序重新分配的键。