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 相关文章推荐
第十二节 类的自动加载 [12]
Oct 09 PHP
默默简单的写了一个模板引擎
Jan 02 PHP
php HandlerSocket的使用
May 02 PHP
解析PHP工厂模式的好处
Jun 18 PHP
php文件下载处理方法分析
Apr 22 PHP
php简单判断两个字符串是否相等的方法
Jul 13 PHP
Yii 2.0中场景的使用教程
Jun 02 PHP
laravel自定义分页效果
Jul 23 PHP
php使用curl伪造来源ip和refer的方法示例
May 08 PHP
php + WebUploader实现图片批量上传功能
May 06 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
Feb 22 PHP
PHP安全之register_globals的on和off的区别
Jul 23 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抓取页面与代码解析 推荐
2010/07/23 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
javascript 哈希表(hashtable)的简单实现
2010/01/20 Javascript
JQuery验证工具类搜集整理
2013/01/16 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
JS实现的四级密码强度检测功能示例
2017/05/11 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
在vue中使用echarts(折线图的demo,markline用法)
2020/07/20 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
Python中os.path用法分析
2015/01/15 Python
基于Python实现一个简单的银行转账操作
2016/03/06 Python
Python 多线程的实例详解
2017/09/07 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
在VS Code上搭建Python开发环境的方法
2018/04/06 Python
python生成器与迭代器详解
2019/01/01 Python
VSCode Python开发环境配置的详细步骤
2019/02/22 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
python打开使用的方法
2019/09/30 Python
Python实现Wordcloud生成词云图的示例
2020/03/30 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
String这个类型的class为何定义成final?
2012/11/13 面试题
某公司.Net方向面试题
2014/04/24 面试题
介绍一下Linux文件的记录形式
2013/09/29 面试题
CNC数控操作工岗位职责
2013/11/19 职场文书
办公室保洁员岗位职责
2013/12/02 职场文书
毕业晚会主持词
2014/03/24 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
公司岗位说明书
2015/10/08 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
SqlServer常用函数及时间处理小结
2023/05/08 SQL Server