10.数组建新索引排序:
10.1使用函数sort对数组元素按顺向排序,即按字母由前向后或按数字由小到大排序。该函数的语法如下所示。
bool sort(array &$arr [,int $sort_flag]); 该函数接受一个数组作为输入参数,如果处理成功,该函数返回TRUE,否则,该函数返回FALSE。该函数将会删除所要排序的数组原有的索引值,从而为该数组使用新的索引值。
10.2使用函数rsort对数组元素做逆向排序,即按字母从后到前或按数字由大到小排序。该函数的语法如下所示。
bool rsort(array &$arr [,int $sort_flag]);
该函数接受一个数组作为输入参数,如果处理成功,函数返回TRUE,否则返回FALSE。该函数将会删除所要排序的数组原有的索引值,从而为该数组使用新的索引值。 11.数组保持原索引的排序:
asort:该函数对数组元素进行排序,并且保持数组的原索引关系不变。该函数仍然对数组元素按顺向排序。如果处理成功,该函数返回TRUE,否则返回FALSE。
ksort:该函数对数组元素按索引名顺序排序,并且保持数组的原索引关系不变,如果处理成功该函数返回TRUE,否则返回FALSE。该函数主要用于关联数组。
$planet1 = array( 'Earth', 'Venus', 'Mars', 'Jupiter', 'Saturn' );
$planet2 = array( 'X'=>'Earth', 'Y'=>'Venus', 'Z'=>'Mars', 'A'=>'Jupiter', 'B'=>'Saturn' );
asort($planet1); ksort($planet2);
echo '使用函数asort对数组元素排序:'; echo '
';
foreach($planet1 as $key => $value) {
echo 'planet1['.$key.']='.$value; echo '
'; echo '
'; }
echo '
';
echo '使用函数ksort对数组元素排序:'; echo '
';
foreach($planet2 as $key => $value) {
echo 'planet2['.$key.']='.$value; echo '
'; echo '
'; }
?> 效果如下:
12.数组的随机排序
PHP提供一个随机排序数组元素的函数shuffle(),该函数的语法如下所示。 bool shuffle (array $array)
该函数为参数数组$array中的元素赋予新的键名,这将删除原有的键名而不仅仅是重新排序。如果执行成功该函数返回TRUE。
13.数组的反向排序
本节最后,介绍一个可以将数组元素按原顺序反向排序的函数,该函数是array_reverse()。其语法如下所示。 array array_reverse (array $array [, bool $preserve_keys])
该函数返回一个与原数组单元顺序相反的数组,原数组以参数$array传入该函数,该函数的第2个参数是可选的,如果第2个参数$preserve_keys设置为TRUE,则原数组的键名将会被保留。
14.重置一个数组
PHP中,重置一个数组指的是,将数组中的内部指针移动到该数组的第一个元素所在的单元。使用函数reset可以完成对数组的重置。该函数的语法如下所示。
mixed reset(array &$arr);
该函数接受一个数组类型的变量,将函数内部指针指向数组第一个单元,并将第一个单元的元素返回。如果数组为空,该函数返回FALSE。
$planet = array(
'Earth', 'Venus', 'Mars', 'Jupiter', 'Saturn' );
echo '当前元素是:'.current($planet); echo '
';
next($planet); next($planet);
echo '
';
echo '调用两次next函数之后,当前元素是:'.current($planet); echo '
';
reset($planet);
echo '
';
echo 'reset数组$planet后,当前元素是:'.current($planet); echo '
';
?> 效果如下:
15.用数组对变量赋值
PHP中,可以将数组的元素作为值赋给变量,使用语言结构list()可以完成这个功能。严格意义上讲,list()和array()一样,不是函数。
在下述程序中,通过list,将数组$planet的第一个元素’Earth’赋给了变量$no1,将第二个元素赋给了变量$no2,将第3个元素赋给了变量$no3。
$planet = array( 'Earth', 'Venus', 'Mars', 'Jupiter', 'Saturn' );
list($no1,$no2,$no3) = $planet; //将数组中的前3个元素分别赋给list结构中对应的3个变量
echo 'no1='.$no1; echo '
'; echo '
';
echo 'no2='.$no2;
echo '
'; echo '
';
echo 'no3='.$no3; echo '
'; echo '
'; ?> 效果如下:
16.快速创建数组
函数range()可以快速创建制定元素范围的数组。其语法如下所示。
array range(mixed $low, mixed $high [, number $step])
函数range()返回一个数组,其中元素为参数从$low到$high的序列,包括它们本身。例如range(1,9)相当于array(1,2,3,4,5,6,7,8,9),如果$low>$high,则序列将从$high到$low。该函数的第3个参数$step是可选的,如果给出了step的值,它将被作为元素之间的跨度值。step应该为正值。如果未指定,step则默认为1。
echo '
';$arr1 = range(5,10); print_r($arr1);
$arr2 = range('a','f'); print_r($arr2);
$arr3 = range(2,10,2); print_r($arr3); ?>
效果如下;
17.压入和弹出数组元素
这里所说的压入是指,向数组的末尾增加一个元素。而弹出是指,将数组中的最后一个元素取出。PHP提供两个函数分别完成这两个功能,这两个函数是array_push()和array_poo()。需要注意的是,使用本函数后会重置
数组指针,相当于使用了函数reset()。
18.改变数组字符索引名的大小写
PHP提供了一个函数,可以将以字符串作为数组索引(键名)的大小写全部更换,这个函数是array_change_key_case(),该函数的语法如下所示。 array array_change_key_case(array $input [, int $case])
函数array_change_key_case()将参数$input数组中的所有索引改为全小写或大写。可选参数$case用来指定大小写转换方式,它为两个常量值:CASE_UPPER和CASE_LOWER。没有指定该参数时,该函数使用的默认值是CASE_LOWER。
$olympic = array( 'Barcelona'=>1992, 'AtLanTa'=>1996, 'sydney'=>2000, 'AthEns'=>2004, 'BEIJING'=>2008 );
echo '原数组:'; echo '
';';print_r($olympic); echo '
$nol = array_change_key_case($olympic, CASE_UPPER); echo '
';echo '调用array_change_key_case()之后:'; echo '
'; print_r($nol); ?>效果如下:
19.交换数组索引和元素
PHP中的数组可以通过函数实现索引和元素的交换,这对程序实现某些操作带来极大的便利,这个函数就是array_flip();
$olympic = array( 'Barcelona'=>1992, 'Atlanta'=>1996, 'Sydney'=>2000, 'Athens'=>2004,