php中count获取多维数组长度的方法

PHP实战:PHP中count获取多维数组长度的方法》要点:
本文介绍了PHP实战:PHP中count获取多维数组长度的方法,希望对您有用。如果有疑问,可以联系我们。

PHP教程本文实例讲述了PHP中count获取多维数组长度的实现办法.分享给大家供大家参考.具体分析如下:

PHP教程先来看看下面程序运行结果:

代码如下:
$numb=array(
            array(10,15,30),array(10,30)
);
 
echo count($numb,1);

A.3
B.12
C.6
D.9
答案是B
count函数中如果mode被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数(也就是你结果的12).如果不设置mode认为0 .不检测多维数组(数组中的数组)(结果3).

PHP教程首先遍历的是外面的数组array得出有两个元素("color1″,"color2″,"color3″) 为3
再遍历("color1″,"color3″)数组得出的是9个元素 为9
结果就是3+9=12

PHP教程参考示例:

代码如下:
<?PHP
$fruits = array (
    array (1,2,null,5,6),
    array (1,
);
echo(count($fruits[0]));
?>

PHP教程如果用其他方式定义的数组,比如:

代码如下:
<?PHP
$fruits[0][0]=1;
$fruits[0][3]=1;
$fruits[0][4]=1;
echo(count($fruits[0]));
?>

这样那就输出3,因为PHP中的数组不要求索引必须连续,参考手册上有如下一段:

PHP教程数组:

PHP 中的数组实际上是一个有序图.图是一种把 values 映射到 keys 的类型.此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性.因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树.

PHP教程实例:

PHP教程获得二维或多维数组的第一维的长度,这是个常用的程序判断,比如你读取的数组是一个二维数组:

代码如下:
<?PHP
$arr=array(
 0=>array('title' => '新闻1','viewnum' => 123,'content' => 'ZAQXSWedcrfv'),
 1=>array('title' => '新闻2','viewnum' => 99,'content' => 'QWERTYUIOPZXCVBNM')
);
?>

如果你想统计数组$arr的长度,也就是说该二维数组只有两条新闻,你想要的数字也是2,但是如果使用count($arr)不同版本的PHP,统计的结果是不一样的;

PHP教程后来在PHP手册中发现,count函数还有第二个参数,解释如下:

PHP教程count函数有两个参数:

PHP教程0(或COUNT_norMAL)为认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,

PHP教程所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:

代码如下:
<?PHP
if(is_array($arr) && count($arr,COUNT_norMAL)>0 )
{
  .....
} else {
  .....
}
?>

你可以使用这样的代码来测试该函数
代码如下:
<?PHP
$arr=array(
 0=>array('title' => '新闻1','content' => 'QWERTYUIOPZXCVBNM')
);
echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_norMAL)
echo "<br/>";
echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>

好了,到此位置,已经办理PHP获取二维或多维数组的第一维长度的问题.

PHP教程希望本文所述对大家的PHP程序设计有所帮助.

PHP实战:PHP中count获取多维数组长度的方法》是否对您有启发,欢迎查看更多与《PHP实战:PHP中count获取多维数组长度的方法》相关教程,学精学透。编程之家 jb51.cc为您提供精彩教程。

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...