4.6.3 排序时保持原数组的索引
前面介绍的两个函数sort()和rsort(),都会为要排序的数组重新建立索引。有时,对数组排序后,仍需要保持原数组的索引,对于这种情况,在PHP中可以使用如下两个函数。
❑asort():该函数对数组元素进行排序,并且保持数组的原索引关系不变。该函数仍然对数组元素按顺向排序。如果处理成功,该函数返回TRUE,否则返回FALSE。
❑ksort():该函数对数组元素按索引名顺序排序,并且保持数组的原索引关系不变。如果处理成功,该函数返回TRUE,否则返回FALSE。该函数主要用于关联数组。
代码4-13演示了这两个函数的用法。
代码4-13 使用函数asort()和ksort()对数组元素排序4-13.php
01 $planet2=array(
02 'X'=>'Earth',
03 'Y'=>'Venus',
04 'Z'=>'Mars',
05 'A'=>'Jupiter',
06 'B'=>'Saturn'
07 );//定义数组$planet2
08
09 asort($planet1);//使用asort()排序
10 ksort($planet2);//使用ksort()排序
11
12 echo'使用函数asort()对数组元素排序:';
13 echo'<br/>';
14
15 foreach($planet1 as$key=>$value)//通过循环输出$planet1的索引和元素
16 {
17 echo'planet1['.$key.']='.$value;
18 echo'<br/>';
19 echo'<br/>';
20 }
21
22 echo'<br/>';
23 echo'使用函数ksort()对数组元素排序:';
24 echo'<br/>';
25
26 foreach($planet2 as$key=>$value)//通过循环输出$planet2的索引和元素
27 {
28 echo'planet2['.$key.']='.$value;
29 echo'<br/>';
30 echo'<br/>';
31 }
32 ?>
【代码解析】此代码没有很特殊的地方,只是先定义一个数组,然后使用函数asort()和ksort()对数组的元素和数组的索引进行排序。这段代码的执行结果如图4-12所示。
函数sort()按顺向排序数组元素,它有一个对应的逆向排序函数——rsort()。同样地,函数asort()和ksort()也分别有一个对应的逆向排序函数arsort()和krsort()。这两个函数分别按照asort()和ksort()的处理方式逆向排序数组元素,它们的用法和函数rsort()类似,这里不再重复举例。
共有条评论 网友评论