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

释放双眼,带上耳机,听听看~!

本文实例讲述了php中count获取多维数组长度的实现方法。分享给大家供大家参考。具体分析如下:

先来看看下面程序运行结果:

代码如下:


1
2
3
4
5
6
7
8
9
10
1$numb=array(  
2
3            array(10,15,30),array(10,15,30),array(10,15,30)  
4
5);  
6
7   
8
9echo count($numb,1);
10

1
2
1 A.3  
2

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

参考示例:

代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
1<?php  
2
3$fruits = array (  
4
5    array (1, 2,null,null, 5, 6),  
6
7    array (1, 2,null,null, 5, 6),  
8
9);  
10
11echo(count($fruits[0]));  
12
13?>
14

如果用其他方式定义的数组,比如:

代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
1<?php  
2
3$fruits[0][0]=1;  
4
5$fruits[0][3]=1;  
6
7$fruits[0][4]=1;  
8
9echo(count($fruits[0]));  
10
11?>
12

1
2
1 这样那就输出3,因为php中的数组不要求索引必须连续,参考手册上有如下一段:
2

**数组:
**PHP 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此你可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。因为可以用另一个 PHP 数组作为值,也可以很容易地模拟树。

实例:

获得二维或多维数组的第一维的长度,这是个常用的程序判断,比如你读取的数组是一个二维数组:

代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
1<?php  
2
3$arr=array(  
4
5 0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),  
6
7 1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')  
8
9);  
10
11?>
12

1
2
1 如果你想统计数组$arr的长度,也就是说该二维数组只有两条新闻,你想要的数字也是2,但是如果使用count($arr)不同版本的php,统计的结果是不一样的;
2

后来在php手册中发现,count函数还有第二个参数,解释如下:

count函数有两个参数:

0(或COUNT_NORMAL)为默认,不检测多维数组(数组中的数组);
1(或COUNT_RECURSIVE)为检测多维数组,

所以如果要判断读取的数组$arr是不是有新闻信息,就要这样写了:

代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1<?php  
2
3if(is_array($arr) && count($arr,COUNT_NORMAL)>0 )  
4
5{  
6
7  .....  
8
9} else {  
10
11  .....  
12
13}  
14
15?>
16

1
2
1 你可以使用这样的代码来测试该函数:
2

代码如下:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1<?php  
2
3$arr=array(  
4
5 0=>array('title' => '新闻1', 'viewnum' => 123, 'content' => 'ZAQXSWedcrfv'),  
6
7 1=>array('title' => '新闻2', 'viewnum' => 99, 'content' => 'QWERTYUIOPZXCVBNM')  
8
9);  
10
11echo '不统计多维数组:'.count($arr,0);//count($arr,COUNT_NORMAL)  
12
13echo "<br/>";  
14
15echo '统计多维数组:'.count($arr,1);//count($arr,COUNT_RECURSIVE)  
16
17?>
18

1
2
1 好了,到此位置,已经解决php中获取二维或多维数组的第一维长度的问题。
2

给TA打赏
共{{data.count}}人
人已打赏
安全技术

C/C++内存泄漏及检测

2022-1-11 12:36:11

安全技术

AOP及其在Spring中的应用(二)

2022-1-12 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索