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 getimagesize 上传图片的长度和宽度检测代码
May 15 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
May 24 PHP
仿Aspnetpager的一个PHP分页类代码 附源码下载
Oct 08 PHP
php微信公众开发之获取周边酒店信息的方法
Dec 22 PHP
smarty模板引擎之配置文件数据和保留数据
Mar 30 PHP
PHP入门教程之数学运算技巧总结
Sep 11 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
PHP实现统计代码行数小工具
Sep 19 PHP
php异常处理捕获错误整理
Sep 23 PHP
Yii 实现数据加密和解密
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
3.从实例开始
2006/10/09 PHP
实用函数4
2007/11/08 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
2014/06/21 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
getElementById().innerHTML与getElementById().value的区别
2016/10/27 Javascript
使用socket.io制做简易WEB聊天室
2018/01/02 Javascript
微信小程序使用map组件实现解析经纬度功能示例
2019/01/22 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
Python内置函数—vars的具体使用方法
2017/12/04 Python
Python中bisect的使用方法
2019/12/31 Python
Python图像处理库PIL的ImageDraw模块介绍详解
2020/02/26 Python
德国知名健康零食网上商店:Seeberger
2017/07/27 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
国贸专业个人求职信范文
2014/01/08 职场文书
法学函授自我鉴定
2014/02/06 职场文书
入职担保书范文
2014/05/21 职场文书
工商管理专业自荐信
2014/06/03 职场文书
大学同学会活动方案
2014/08/20 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
幼儿园2014年度工作总结
2014/11/10 职场文书
慰问信格式规范
2015/03/23 职场文书
国情备忘录观后感
2015/06/04 职场文书
公司规章制度范本
2015/08/03 职场文书
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL