gpt4 book ai didi

php - 为什么 sort() 在 PHP 7 中以相反的顺序使用 SORT_NUMERIC?

转载 作者:行者123 更新时间:2023-12-05 05:12:15 26 4
gpt4 key购买 nike

如果我像这样使用 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 中按升序排列(如预期):

Array ( [0] => img1.png [1] => img2.png [2] => img10.png [3] => img12.png )

但在 PHP 7 中它是相反的顺序:

Array ( [0] => img12.png [1] => img10.png [2] => img2.png [3] => img1.png )

那么为什么 sort() 在 PHP 7 中以相反的顺序使用 SORT_NUMERIC

最佳答案

因为数组值不是严格意义上的数字,所以在这种情况下 PHP 7 根本不会排序。

<?php
$array1 = $array2 = array("img12.png", "img2.png", "img10.png", "img1.png");
sort($array1, SORT_NUMERIC);
print_r($array1);

Array ( [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

关于php - 为什么 sort() 在 PHP 7 中以相反的顺序使用 SORT_NUMERIC?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54764784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com