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 和 MySQL 时区的一点总结
Mar 26 PHP
php文件怎么打开 如何执行php文件
Dec 21 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
Oct 26 PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
PHP面向对象五大原则之单一职责原则(SRP)详解
Apr 04 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
详解提高使用Java反射的效率方法
Apr 29 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 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上传、管理照片示例
2006/10/09 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php实现简单的上传进度条
2015/11/17 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
Jquery实现三层遍历删除功能代码
2013/04/23 Javascript
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
jquery实现提示语淡入效果
2017/05/05 jQuery
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
微信小程序网络请求封装示例
2018/07/24 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
Vue批量图片显示时遇到的路径被解析问题
2019/03/28 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[01:05:59]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
详解python之配置日志的几种方式
2017/05/22 Python
python实现Adapter模式实例代码
2018/02/09 Python
Python实现处理逆波兰表达式示例
2018/07/30 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
简单了解python 邮件模块的使用方法
2019/07/24 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
公司中秋节活动方案
2014/02/12 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
义诊活动总结
2015/02/04 职场文书
《窃读记》教学反思
2016/02/18 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers