日期:2014-05-17 浏览次数:20482 次
??? 写了两篇关于Php数组的日常使用,本篇《PHP开发笔记系列(九)- 数组(三)》 ,主要关注数组的大小和排序。
??? 1. 获取数组长度
??? count()函数返回数组中的元素个数,是sizeof()是count()的别名,功能一样。
?
file: count.php url: http://localhost:88/array/count.php <?php $map['1st'] = '1st value'; $map['2nd'] = '2nd value'; $map['3rd'] = '3rd value'; echo count($map); ?>
?
??? count()函数除了接受第一个被count的数组变量外,还可以接受一个mode的参数,指定是否需要进行递归,统计多维数组中所有元素的个数,代码如下:
?
file: count.php url: http://localhost:88/array/count.php <?php $school['grade1']['class1'] = 'class1, grade1'; $school['grade1']['class2'] = 'class2, grade1'; $school['grade1']['class3'] = 'class3, grade1'; $school['grade2']['class1'] = 'class1, grade2'; $school['grade2']['class2'] = 'class2, grade2'; $school['grade2']['class3'] = 'class3, grade2'; $school['grade3']['class1'] = 'class1, grade3'; echo count($school); echo count($school, 1); ?>
?
??? 2. 统计数组元素出现频率
??? array_count_values()函数返回一个包含关联键/值的数组。如'A'出现2次,'B'出现1次,之类。代码如下:
?
file: array_count_values.php url: http://localhost:88/array/array_count_values.php <?php $favor = array('Sport', 'Travel', 'Sport' , 'Sing'); $stats = array_count_values($favor); print_r($stats); echo "<br/>====================<br/>"; $favor1 = array('1'=>'Sport', '2'=>'Sing', '3'=>'Sing', '4'=>'Travel'); $stats1 = array_count_values($favor1); print_r($stats1); ?>
?
??? 3. 返回数组非重复元素
??? array_unique()函数会删除数组中所有重复的值,返回一个由不重复值组成的数组,原数组元素不变,代码如下:
?
file: array_unique.php url: http://localhost:88/array/array_unique.php <?php $favor = array('Sport', 'Travel', 'Sport' , 'Sing'); $unique = array_unique($favor); print_r($favor); echo "<br/>====================<br/>"; print_r($unique); ?>
?
??? 4. 数组排序
??? sort()函数对数组进行排序,各元素按值由低到高的顺序排列。sort()函数不反悔排序后的数组,相反它只是排序,不论结果如何都不反悔任何值。同时,可以为排序指定排序规则,如SORT_NUMERIC是按数值排序,应用在整数和浮点数上,SORT_REGULAR是按ASCII值进行排序,应用在字符或字符串上,SORT_STRING是按字符串排序。代码如下:
??
??? 注意:sort()函数会直接修改被传入的array中的值,仔细查看下面程序的输出结果。
?
file: sort.php url: http://localhost:88/array/sort.php <?php $number = array(1, 4, 3, 2, 5, 10, 7, 1, 2); print_r($number); echo '<br/>'; sort($number, SORT_NUMERIC); print_r($number); echo "<br/>====================<br/>"; $letter = array('a', 'A', 'Z', 'f', 'G', 'e'); print_r($letter); echo '<br/>'; // 默认是模式是SORT_REGULAR sort($letter, SORT_REGULAR); print_r($letter); echo "<br/>====================<br/>"; $string = array('Jack', 'Mike', 'Mary', 'Jassica', 'Ruby'); print_r($string); echo '<br/>'; sort($string, SORT_STRING); print_r($string); ?>
?
??? 从上面的结果可以查看,sort()函数修改的不仅被传入数组的元素,而且把键与值的对应关系都改变了,若需要保持键/值对的关系,需要用到asort()函数,如下:
?
file: asort.php url: http://localhost:88/array/asort.php <?php $number = array(1, 4, 3, 2, 5, 10, 7, 1, 2); print_r($number