php中count获取多维数组长度的方法

 更新时间:2014年11月03日 09:44:50   投稿:shichen2014  
这篇文章主要介绍了php中count获取多维数组长度的方法,实例分析了数组的原理并总结了数组长度计算的方法,非常具有实用价值,需要的朋友可以参考下
(福利推荐:【腾讯云】服务器最新限时优惠活动,云服务器1核2G仅99元/年、2核4G仅768元/3年,立即抢购>>>:9i0i.cn/qcloud

(福利推荐:你还在原价购买阿里云服务器?现在阿里云0.8折限时抢购活动来啦!4核8G企业云服务器仅2998元/3年,立即抢购>>>:9i0i.cn/aliyun

本文实例讲述了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实现36进制与10进制转换功能示例

    php实现36进制与10进制转换功能示例

    这篇文章主要介绍了php实现36进制与10进制转换功能,结合实例形式分析了php数值运算与字符串操作的相关技巧,需要的朋友可以参考下
    2017-01-01
  • 详解thinkphp的Auth类认证

    详解thinkphp的Auth类认证

    Auth类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程,很少人知道它,它其实比RBAC更方便。本文带着大家来详细了解它。
    2021-05-05
  • php运行报错Call to undefined function curl_init()的最新解决方法

    php运行报错Call to undefined function curl_init()的最新解决方法

    其实在网上很早之前就出现过这个问题,网上百度了下,答案千篇一律,最近又遇到这个问题,但是百度出来的问题不能解决这个问题了,所以只能翻墙找答案,现在将解决的方法分享给大家,有需要的朋友们可以参考借鉴,下面来一起学习学习吧。
    2016-11-11
  • php下使用iconv需要注意的问题

    php下使用iconv需要注意的问题

    在使用这个函数进行字符串编码转换时,需要注意,如果将utf-8转换为gb2312时,可能会出现字符串被截断的情况发生。
    2010-11-11
  • 降低PHP Redis内存占用

    降低PHP Redis内存占用

    本文主要介绍了降低PHP Redis内存占用的方法。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • PHP四舍五入精确小数位及取整

    PHP四舍五入精确小数位及取整

    经常用到取整的函数,今天小小的总结一下!其实很简单,就是几个函数而已~~主要是:ceil,floor,round,intval
    2014-01-01
  • php文件后缀不强制为.php的实操方法

    php文件后缀不强制为.php的实操方法

    在本篇文章里小编给大家整理的是一篇关于php文件后缀不强制为.php的实操方法,有需要的朋友们参考下。
    2019-09-09
  • php 生成唯一id的几种解决方法

    php 生成唯一id的几种解决方法

    本篇文章介绍了“php 生成唯一id的几种解决方法”,需要的朋友可以参考一下
    2013-03-03
  • php实现短信发送代码

    php实现短信发送代码

    这篇文章主要介绍了php实现短信发送代码的相关资料,需要的朋友可以参考下
    2015-07-07
  • 详谈PHP中的密码安全性Password Hashing

    详谈PHP中的密码安全性Password Hashing

    下面小编就为大家带来一篇详谈PHP中的密码安全性Password Hashing。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02

最新评论

?


http://www.vxiaotou.com