日期:2014-05-17 浏览次数:20591 次
??? 写了两篇关于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