PHP - 为什么 array_multisort 函数不能正确排序?
PHP - Why doesn't array_multisort function sort correctly?
请查看以下包含 2 个数组的代码。我使用带有排序标志的 multisort 函数进行升序和数字然后显示。正如您在输出中看到的那样,数组 2 以 100 开头,而它应该是最后一个。请解释造成这种情况的原因以及如何正确对其进行排序。谢谢。
<?php
$array1 = array(1,7,10,6);
$array2 = array(100,20,25,10);
array_multisort($array1, SORT_ASC, SORT_NUMERIC, $array2);
print_r($array1);
echo "<br>";
print_r($array2);
?>
output:
Array ( [0] => 1 [1] => 6 [2] => 7 [3] => 10 )
Array ( [0] => 100 [1] => 10 [2] => 20 [3] => 25 )
嗯,是的,array_multisort第一次看的有点难
基本上排序是字典序的,一个花哨的词,意思是第一个数组被排序,第二个数组元素根据第一个数组排序。
查看您的第一个(输出)数组并查看顺序并将其映射到初始的第二个数组,您将看到发生了什么。
因此,第二个数组包含第 1、第 4、第 2 和第 3 个元素。
如果您只想对多个数组进行简单排序,那么只需一个一个地或循环地进行。
请查看以下包含 2 个数组的代码。我使用带有排序标志的 multisort 函数进行升序和数字然后显示。正如您在输出中看到的那样,数组 2 以 100 开头,而它应该是最后一个。请解释造成这种情况的原因以及如何正确对其进行排序。谢谢。
<?php
$array1 = array(1,7,10,6);
$array2 = array(100,20,25,10);
array_multisort($array1, SORT_ASC, SORT_NUMERIC, $array2);
print_r($array1);
echo "<br>";
print_r($array2);
?>
output:
Array ( [0] => 1 [1] => 6 [2] => 7 [3] => 10 )
Array ( [0] => 100 [1] => 10 [2] => 20 [3] => 25 )
嗯,是的,array_multisort第一次看的有点难
基本上排序是字典序的,一个花哨的词,意思是第一个数组被排序,第二个数组元素根据第一个数组排序。
查看您的第一个(输出)数组并查看顺序并将其映射到初始的第二个数组,您将看到发生了什么。
因此,第二个数组包含第 1、第 4、第 2 和第 3 个元素。
如果您只想对多个数组进行简单排序,那么只需一个一个地或循环地进行。