gpt4 book ai didi

php - php array_multisort 是如何工作的?

转载 作者:可可西里 更新时间:2023-11-01 13:40:27 28 4
gpt4 key购买 nike

我在理解 array_multisort 时遇到一些问题

看看当两个值相同时它是如何排序的:

 $a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);

上面代码的输出将是:

 Array ( [0] => Cat [1] => Dog [2] => Dog )
Array ( [0] => Missy [1] => Fido [2] => Pluto )

让我知道为什么 Missy 排在第一位,如果你通过提升它一定是 数组([0] => Fido,[1] => Missy,[2] => Pluto)对于下降反之亦然

也看到了这个

带排序参数:

$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);
print_r($a1);
print_r($a2);

上面代码的输出将是:

 Array ( [0] => Cat [1] => Dog [2] => Dog ) 
Array ( [0] => Missy [1] => Pluto [2] => Fido )

但是 Array ( [0] => Missy [1] => Pluto [2] => Fido ) 不在 SORT_DESC 是某种类型的混淆。

谁能给我解释一下 array_multisort 是如何工作的,这样我就能理解它是如何工作的。

最佳答案

好吧,您正在以类似于 Excel 等程序的方式对数组进行排序。每个数组对应一列。

首先,所有数组都按给定的第一个数组排序。如果存在相同的值,则受影响的值按给定的第二个数组排序。如果再次有相等的值,则使用第三个数组,依此类推。

或者换句话说:数组使用所有数组排序,但从右边开始(如果您假设它真的按所有列排序一次)。

对于您的特定示例(第二个):

首先您想按升序排序,因此 Cat 将排在第一位。因此,最后一个数组元素将移动到两个数组中的第一个位置。其他两个元素 Dog 是相等的。这会导致函数查看下一个数组。它被告知要按降序对这个数组进行排序,因此 Pluto 排在第一位。在这种情况下,这会导致元素根本没有移动(因为它们的顺序已经正确)。

关于php - php array_multisort 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9093664/

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