php 二维数组 长度,php中count获取多维数组长度的示例

在之前的文章中我们给大家介绍了php数组长度的获取办法,但是数组分为一维数组,多维数组、那么本文讲述了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 "
";

echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)

?>

总结:

本文到这里就已经解决php中获取二维或多维数组的第一维长度的问题,获取php数组长度是不是很简单呢,希望对你的有所帮助!

相关推荐:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值