7.9统计数组元素个数
7.9 统计数组元素个数
使用count()函数统计数组的元素个数。
下面的例子介绍count()函数统计数组的元素个数。
【例7.15】(实例文件:ch07\7.15.php)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/ DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <HEAD><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><h2>用count函数统计数 组元素个数。</h2></HEAD> <BODY> <?php $prices_per_day = array("单床房"=> 298,"标准间"=> 268,"三床房"=> 198,"VIP套房"=> 368); $roomtypesinfo = array( array( "type"=>"单床房", "info"=>"此房间为单人单间。", "price_per_day"=>298 ), array( "type"=>"标准间", "info"=>"此房间为两床标准配置。", "price_per_day"=>268 ), array( "type"=>"三床房", "info"=>"此房间备有三张床", v"price_per_day"=>198 ), array( "type"=>"VIP套房", "info"=>"此房间为VIP两间内外套房", "price_per_day"=>368 ) ); echo count($prices_per_day)."个元素在数组$prices_per_day中。<br />"; echo count($roomtypesinfo)."个内嵌数组在二维数组$roomtypesinfo中。<br />"; echo count($roomtypesinfo,1)."个元素$roomtypesinfo中。<br />"; ?> </BODY> </HTML>
运行结果如图7-16所示。

图7-16 程序运行结果
【案例分析】
(1)数组$prices_per_day通过count()函数返回整数4。因为数组$prices_per_day有4个数组元素。
(2)数组$roomtypesinfo为一个二维数组。count($roomtypesinfo)只统计了数组$roomtypesinfo内的4个内嵌数组的数量。
(3)echo count($roomtypesinfo,1)这一语句中,count()函数设置了一个模式(mod)为整数“1”,其意义是,count统计的时候要对数组内部所有的内嵌数组进行循环查询。所以最终的结果是所有内嵌数组的个数加上内嵌数组内元素的个数,即4个内嵌数组加上12个数组元素,为16。
使用array_count_values()函数对数组内的元素值进行统计,并且返回一个以函数值为“键值”,以函数值个数为“元素值”的数组。
下面的例子介绍array_count_values()函数统计数组的元素值个数。
【例7.16】(实例文件:ch07\7.16.php)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <HEAD><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><h2>用 array_count_values函数统计数组内元素值。</h2></HEAD> <BODY> <?php $prices_per_day = array("单床房"=> 298,"标准间"=> 268,"三床房"=> 198,"四床房"=> 198,"VIP套房"=> 368); print_r(array_count_values($prices_per_day)); ?> </BODY> </HTML>
运行结果如图7-17所示。

图7-17 程序运行结果
【案例分析】
(1)数组$prices_per_day为一个联合数组,通过array_count_values($prices_per_day)统计数组内元素值的个数和分布,然后以(键值和值)的形式返回一个数组。元素值为“198”的元素有两个,虽然它们的键值完全不同。
(2)array_count_values()只能用于一维数组。因为它不能将内嵌的数组当作元素进行统计。
上一篇:7.8查询数组中指定元素
下一篇:7.10删除数组中重复元素