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


Posted in PHP onNovember 03, 2014

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

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

$numb=array( 

            array(10,15,30),array(10,15,30),array(10,15,30) 

); 

  

echo count($numb,1);

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

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

参考示例:

<?php

$fruits = array (

    array (1, 2,null,null, 5, 6),

    array (1, 2,null,null, 5, 6),

);

echo(count($fruits[0]));

?>

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

<?php

$fruits[0][0]=1;

$fruits[0][3]=1;

$fruits[0][4]=1;

echo(count($fruits[0]));

?>

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

数组:

PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 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手册中发现,count函数还有第二个参数,解释如下:

count函数有两个参数:

0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,

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

<?php

if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )

{

  .....

} else {

  .....

}

?>

你可以使用这样的代码来测试该函数:
<?php

$arr=array(

 0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),

 1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')

);

echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)

echo "<br/>";

echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)

?>

好了,到此位置,已经解决php中获取二维或多维数组的第一维长度的问题。

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

PHP 相关文章推荐
基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)
Jun 25 PHP
php单文件版在线代码编辑器
Mar 12 PHP
PHP的Socket网络编程入门指引
Aug 11 PHP
php实现处理输入转义字符的代码
Nov 08 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
给大家分享几个常用的PHP函数
Jan 15 PHP
Laravel5.5新特性之友好报错以及展示详解
Aug 13 PHP
Laravel 集成 Geetest验证码的方法
May 14 PHP
php使用array_chunk函数将一个数组分割成多个数组
Dec 05 PHP
PHP7变量处理机制修改
Mar 09 PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 #PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 #PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 #PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 #PHP
ThinkPHP分组下自定义标签库实例
Nov 01 #PHP
PHP根据两点间的经纬度计算距离
Oct 31 #PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 #PHP
You might like
详解json在php中的应用
2018/09/30 PHP
Javascript 继承实现例子
2009/08/12 Javascript
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
jquery获取节点名称
2015/04/26 Javascript
基于Jquery实现表单验证
2020/07/20 Javascript
原生js实现对Ajax的封装(仿jquery)
2017/01/22 Javascript
详解vue2.0组件通信各种情况总结与实例分析
2017/03/22 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
Nodejs中怎么实现函数的串行执行
2019/03/02 NodeJs
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
详解python中asyncio模块
2018/03/03 Python
python利用高阶函数实现剪枝函数
2018/03/20 Python
python的dataframe转换为多维矩阵的方法
2018/04/11 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
Python 类的特殊成员解析
2018/06/20 Python
python多个模块py文件的数据共享实例
2019/01/11 Python
Python3.7 dataclass使用指南小结
2019/02/22 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python常用运维脚本实例小结
2020/02/14 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
波兰电子产品购物网站:Vobis
2019/05/26 全球购物
怎样声明子类
2013/07/02 面试题
美术社团活动总结
2014/06/27 职场文书
公司欠款证明
2015/06/24 职场文书
信息技术研修心得体会
2016/01/08 职场文书
Python函数式编程中itertools模块详解
2021/09/15 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS