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所示。
【案例分析】
(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所示。
【案例分析】
(1)数组$prices_per_day为一个联合数组,通过array_count_values($prices_per_day)统计数组内元素值的个数和分布,然后以(键值和值)的形式返回一个数组。元素值为“198”的元素有两个,虽然它们的键值完全不同。
(2)array_count_values()只能用于一维数组。因为它不能将内嵌的数组当作元素进行统计。