如果我像这样使用sort()
:
<?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] =〉图片1.png [1] =〉图片2.png [2] =〉图片10.png [3] =〉图片12.png)
但在PHP 7中,顺序相反:
数组([0] =〉图片12.图片[1] =〉图片10.图片[2] =〉图片2.图片[3] =〉图片1.图片)
那么为什么sort()
在PHP 7中以相反的顺序使用SORT_NUMERIC
呢?
3条答案
按热度按时间quhf5bfb1#
因为数组值不是严格的数字,所以PHP 7在这种情况下根本不排序。
数组([0] =〉图片12.png [1] =〉图片2.png [2] =〉图片10.png [3] =〉图片1.png)
数组([0] =〉1 [1] =〉2 [2] =〉10 [3] =〉12)
请改用
natsort()
。http://php.net/manual/en/function.natsort.phpwljmcqd82#
数组1 =数组(“图片10.png”、“图片12.png”、“图片2.png”、“图片1.png”);
排序($array1,排序_自然);
打印_r($array1);
将给予结果数组([0] =〉图片1.png [1] =〉图片2.png [2] =〉图片10.png [3] =〉图片12.png)
ne5o7dgx3#
Yu应该使用rsort()函数,它以“正确”的顺序显示数组的成员。