您当前的位置:首页 > 文章教程 > 计算机与互联网 > 网络编程

7.9统计数组元素个数

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所示。

image

图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所示。

image

图7-17 程序运行结果

【案例分析】

(1)数组$prices_per_day为一个联合数组,通过array_count_values($prices_per_day)统计数组内元素值的个数和分布,然后以(键值和值)的形式返回一个数组。元素值为“198”的元素有两个,虽然它们的键值完全不同。

(2)array_count_values()只能用于一维数组。因为它不能将内嵌的数组当作元素进行统计。