我正在查看我的一些旧作品,并看到asort函数可以完美地用于我需要的一些用途,尽管我尝试了一种极其不同且漫长的方式。
所以我的问题是,asort如何在排序时保持关联?我以为数组可以按键排序,或者按值排序,是否有第三个排序轴?
答案 0 :(得分:1)
“第三个轴”是内存/阵列中的实际位置 在对以下两个数组进行操作时,您会清楚地看到它,它们是相同的,但具有不同的顺序:
$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}";
在这两个数组上执行默认的asort将导致以下两种情况:
$x1=array('bbb'=>'bbb','ccc'=>'ccc','mmm'=>'mmm');
$x2=array('bbb'=>'bbb','ccc'=>'ccc','mmm'=>'mmm');
答案 1 :(得分:1)
asort - 对数组进行排序并进行维护 指数协会
所以,例如:
Asort
将按升序排序值,保持index =>值关联。Arsort
是相同的但是以desc方式。手册在Array sorting function here上非常清楚。