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基础知识:控制结构
Dec 13 PHP
PHP获取网站域名和地址的代码
Aug 17 PHP
PHP中实现中文字符进制转换原理分析
Dec 06 PHP
php打开文件fopen函数的使用说明
Jul 05 PHP
使用openssl实现rsa非对称加密算法示例
Jan 24 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
php树型类实例
Dec 05 PHP
WIN8.1下搭建PHP5.6环境
Apr 29 PHP
Symfony2函数用法实例分析
Mar 18 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
Mar 20 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
May 23 PHP
laravel框架语言包拓展实现方法分析
Nov 22 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
PHP中的MYSQL常用函数(php下操作数据库必备)
2010/09/12 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
用JS实现的一个include函数
2007/07/21 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
JQuery实现动态表格点击按钮表格增加一行
2014/08/24 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
ionic2懒加载配置详解
2017/09/01 Javascript
js变量声明var使用与不使用的区别详解
2019/01/21 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
原生JavaScript实现进度条
2021/02/19 Javascript
python实现计算资源图标crc值的方法
2014/10/05 Python
Python中非常实用的一些功能和函数分享
2015/02/14 Python
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Django权限机制实现代码详解
2018/02/05 Python
python 简单照相机调用系统摄像头实现方法 pygame
2018/08/03 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
2018/11/30 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
jupyter notebook远程访问不了的问题解决方法
2021/01/11 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
ivx平台开发之不用代码实现一个九宫格抽奖功能
2021/01/27 HTML / CSS
高中生毕业自我鉴定
2013/10/10 职场文书
2014年物业管理工作总结
2014/11/21 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
Android开发 使用文件储存的方式保存QQ密码
2022/04/24 Java/Android