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连接Oracle数据库
Oct 09 PHP
php中jQuery插件autocomplate的简单使用笔记
Jun 14 PHP
php 获取本地IP代码
Jun 23 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
ECSHOP在PHP5.5及高版本上报错的解决方法
Aug 31 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
thinkPHP5框架导出Excel文件简单操作示例
Aug 03 PHP
PHP快速排序算法实现的原理及代码详解
Apr 03 PHP
laravel 修改记住我功能的cookie保存时间的方法
Oct 14 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
phpfans留言版用到的install.php
2007/01/04 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
PHP单例模式详解及实例代码
2016/12/21 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
js 操作select相关方法函数
2009/12/06 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
ie7+背景透明文字不透明超级简单的实现方法
2014/01/17 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
js的toUpperCase方法用法实例
2015/01/27 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
原生js封装的ajax方法示例
2018/08/02 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
Python中一行和多行import模块问题
2018/04/01 Python
Python网页正文转换语音文件的操作方法
2018/12/09 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
美国知名玩具品牌:Melissa & Doug
2016/08/16 全球购物
英国最大的海报商店:GB Posters
2018/03/20 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
三个Unix的命令面试题
2015/04/12 面试题
财务内勤岗位职责
2014/04/17 职场文书
恰同学少年观后感
2015/06/08 职场文书
停发工资证明范本
2015/06/12 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
linux目录管理方法介绍
2022/06/01 Servers
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle