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的FTP学习(二)[转自奥索]
Oct 09 PHP
php include加载文件两种方式效率比较
Aug 08 PHP
php中自定义函数dump查看数组信息类似var_dump
Jan 27 PHP
php实现快速排序的三种方法分享
Mar 12 PHP
PHP源码分析之变量的存储过程分解
Jul 03 PHP
php图片处理函数获取类型及扩展名实例
Nov 19 PHP
Laravel 5框架学习之Laravel入门和新建项目
Apr 07 PHP
PHP常用的排序和查找算法
Aug 06 PHP
在PHP语言中使用JSON和将json还原成数组的方法
Jul 19 PHP
thinkPHP5.0框架安装教程
Mar 25 PHP
thinkphp5引入公共部分header、footer的方法详解
Sep 14 PHP
php求斐波那契数的两种实现方式【递归与递推】
Sep 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
PHP+DBM的同学录程序(2)
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
使用php判断服务器是否支持Gzip压缩功能
2013/09/24 PHP
php $_SESSION会员登录实例分享
2021/01/19 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
JavaScript判断访问的来源是手机还是电脑,用的哪种浏览器
2013/12/12 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
JavaScript中获取纯正的undefined的方法
2016/03/06 Javascript
Ionic+AngularJS实现登录和注册带验证功能
2017/02/09 Javascript
angular.js指令中的controller、compile与link函数的不同之处
2017/05/10 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
JS中使用media实现响应式布局
2017/08/04 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
Bootstrap实现模态框效果
2019/09/30 Javascript
详解React路由传参方法汇总记录
2020/11/29 Javascript
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
对Python生成器、装饰器、递归的使用详解
2019/07/19 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
利用python汇总统计多张Excel
2020/09/22 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
销售人员职业生涯规划范文
2014/03/01 职场文书
课程改革实施方案
2014/03/16 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
导游词之山海关
2019/12/10 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers