我看了看我的一些旧作品,发现asort函数对于我需要的一些用途来说是完美的,尽管我尝试了一种非常不同的、冗长的方法。
所以我的问题是,在排序时asort是如何保持关联的呢?我认为数组可以按键或值排序,还有第三个排序轴吗?
发布于 2011-02-28 09:11:48
“第三个枢轴”是内存/数组中的实际位置。
在以下两个数组上执行foreach时,您将清楚地看到这一点,这两个数组相同,但顺序不同:
$x1=array('mmm'=>'mmm','bbb'=>'bbb','ccc'=>'ccc');
$x2=array('ccc'=>'ccc','bbb'=>'bbb','mmm'=>'mmm');
foreach($x1 as $k=>$v) echo "{$k} {$v}";
foreach($x2 as $k=>$v) echo "{$k} {$v}";在这两个数组上执行默认排序将导致以下两种情况:
$x1=array('bbb'=>'bbb','ccc'=>'ccc','mmm'=>'mmm');
$x2=array('bbb'=>'bbb','ccc'=>'ccc','mmm'=>'mmm');发布于 2011-02-28 18:25:22
From the manual:
asort -对数组进行排序并维护索引关联
所以,举个例子:
Asort只会以升序的方式按值排序,保持index=>value的值相同,但以降序的方式排序。这本手册在 here上写得很清楚。
基本函数仅按键或值排序,但有以下选项:
https://stackoverflow.com/questions/5137289
复制相似问题