如果我像这样使用sort()
来使用SORT_NUMERIC
:
<?php
$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");
sort($array1, SORT_NUMERIC);
print_r($array1);
在PHP 5.5 / 5.6中,输出按升序排列(如预期):
数组([0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png)
但是在PHP 7中却是相反的顺序:
数组([0] => img12.png [1] => img10.png [2] => img2.png [3] => img1.png)
为什么sort()
在PHP 7中以相反的顺序使用SORT_NUMERIC
?
答案 0 :(得分:1)
$ array1 = array(“ img10.png”,“ img12.png”,“ img2.png”,“ img1.png”);
sort($ array1,SORT_NATURAL);
print_r($ array1);
将给出结果 数组([0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png)
答案 1 :(得分:0)
由于数组值不是严格的数值,因此在这种情况下,PHP 7根本无法排序。
<?php
$array1 = $array2 = array("img12.png", "img2.png", "img10.png", "img1.png");
sort($array1, SORT_NUMERIC);
print_r($array1);
数组([0] => img12.png [1] => img2.png [2] => img10.png [3] => img1.png)
<?php
$array1 = $array2 = array("12", "2", "10", "1");
sort($array1, SORT_NUMERIC);
print_r($array1);
Array([0] => 1 [1] => 2 [2] => 10 [3] => 12)
改为使用natsort()
。 http://php.net/manual/en/function.natsort.php