作者:菁菁da小姐认_194 | 来源:互联网 | 2014-01-19 13:08
应用sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可应用asort()函数表现,关联数组中最重要的则是可按照要害字(如xm、xb、mz等)的升序排序,该方法是用函数ksort()函数。
在PHP数组学习摘录部分懂得到最基础的PHP数组的建立和数组元素的显示。需要深进学习下PHP数组的相干把持。首先接触的就是数组元素的升序、降序的排序标题。
1,快速创立数组的函数range()
比如range()函数可以快速创立从1到9的数字数组:
$numbers=range(1,9);
echo $numbers[1];
?>
当然,应用range(9,1)则创立了9到1的数字数组。同时,range()还可以创立从a到z 的字符数组:
$numbers=range(a,z);
foreach ($numbers as $mychrs)
echo $mychrs.' ';
?>
应用字符数组时留心大小写,比如range(A,z)和range(a,Z)是不一样的。
range()函数还具有第三个参数,该参数的作用是设定步长,比如range(1,9,3)创立的数组元素是:1、4、7
2,PHP中惯例数组的排序
一般数组中的各元素均以字符或数字表现的,所以可对数组元素进行升序排列,该功效函数为sort()。比如:
$people=array('name','***','nation','birth');
foreach ($people as $mychrs)
echo $mychrs.' ';
sort($people);
echo '
---排序后---
';
foreach ($people as $mychrs)
echo $mychrs.' ';
?>
升序排序后的数组元素显示为 birth name nation ***,当然,sort()函数是区分字母大小写的(字母从大到小的次序是:A…Z…a…z)
Sort()函数还具有第二参数,用来阐明升序的规矩是用来比拟数字还是字符串的。比如:
echo '---按数字升序排序---
';
$num2=array('26','3',);
sort($num2,SORT_NUMERIC);
foreach ($num2 as $mychrs)
echo $mychrs.' ';
echo '
---按字符升序排序---
';
$num3=array('26','3');
sort($num3,SORT_STRING);
foreach ($num3 as $mychrs)
echo $mychrs.' ';
?>
SORT_NUMERIC和SORT_STRING用来声明按数字或字符的升序排列。假如按照数字升序排列是:3,26;但假如按照字符升序排列则是:26,3了。
PHP中除了升序函数以外,还有降序或称反向排列的函数,就是rsort()函数,比如:
$num1=range(1,9);
rsort($num1);
这里实在就相当于range(9,1)
3,PHP中关联数组的排序
PHP除了支撑数字索引数组以外,还支撑相干数组。比如如下数组就是一个相干(关联)数组:
$peoples=array('xm'=>'name','xb'=>'***','mz'=>'nation','cs'=>'birth');
应用sort($peoples)默认即是按照元素定义值的升序排序,在关联数组中可应用asort()函数表现,关联数组中最重要的则是可按照要害字(如xm、xb、mz等)的升序排序,该方法是用函数ksort()函数。
$peoples=array('xm'=>'name','xb'=>'***','mz'=>'nation','cs'=>'birth');
foreach ($peoples as $mychrs)
echo $mychrs.' ';
echo '
--按元素值升序排列--
';
asort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs.' ';
echo '
--按要害字升序排列--
';
ksort($peoples);
foreach ($peoples as $mychrs)
echo $mychrs.' ';
?>
和惯例数组拥有sort()升序函数的反向排序rsort()降序函数相对应的,关联数组也有对应的降序函数:asort()函数和arsort()函数、ksort()函数和krsort()函数。
记忆:原型函数是sort(),其中a、k表现关联数组相干必需前置,反向排序应用r润饰。
4,PHP数组元素随机排序
PHP中应用shuffle()函数将数组元素进行随机的重新排序,比如:
$fer=array('cnbruce','cnrose','cnjames','cnanne');
shuffle($fer);
foreach ($fer as $mychrs)
echo $mychrs.' ';
?>
每次都会显示不同的排序组合
5,PHP数组按原次序反向排序
PHP中可应用array_reverse()函数将数组元素按原次序反向排序。比如:
$fer=array('cnbruce','cnrose','cnjames','cnanne');
foreach ($fer as $mychrs)
echo $mychrs.' ';
$fer=array_reverse($fer);
echo '
--按原次序反向--
';
foreach ($fer as $mychrs)
echo $mychrs.' ';
?>
cnbruce cnrose cnjames cnanne
--按原次序反向--
cnanne cnjames cnrose cnbruce
留心这里的 $fer=array_reverse($fer); 在此之前的任何排序函数均只是声明引用,并没有对原有数组进行重新定义,但当我调试该函数时则需要重新定义。这是由于array_reverse()是返回原数组修正后的副本,假如不需要原有数组,可对原数组重新定义达到笼罩的目标,否则就另外定义数组保留副本,比如:$fer_bak=array_reverse($fer);