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生成随机密码的几种方法
Jan 17 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
基于PHPExcel的常用方法总结
Jun 13 PHP
php文件上传的例子及参数详解
Dec 12 PHP
PHP判断远程图片或文件是否存在的实现代码
Feb 20 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
Laravel 5框架学习之Eloquent 关系
Apr 09 PHP
Zend Framework教程之配置文件application.ini解析
Mar 10 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
laravel-admin 实现给grid的列添加行数序号的方法
Oct 08 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
一个目录遍历函数
2006/10/09 PHP
第二节--PHP5 的对象模型
2006/11/16 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP获取栏目的所有子级和孙级栏目的ID号示例
2014/04/01 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
php 多进程编程父进程的阻塞与非阻塞实例分析
2020/02/22 PHP
FCK调用方法..
2006/12/21 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
ANT 压缩(去掉空格/注释)JS文件可提高js运行速度
2013/04/15 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
JS 获取鼠标左右键的键值方法
2014/10/11 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
Python生成验证码实例
2014/08/21 Python
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
python验证码识别的实例详解
2016/09/09 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
python实现倒计时小工具
2019/07/29 Python
python模块导入的方法
2019/10/24 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
python logging.basicConfig不生效的原因及解决
2020/02/20 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
python如何导入依赖包
2020/07/13 Python
柒牌官方商城:中国男装优秀品牌
2017/06/30 全球购物
班主任工作经验交流材料
2014/05/13 职场文书
优秀中职教师事迹材料
2014/08/26 职场文书