php中count获取多维数组长度的方法
程序员文章站
2023-12-27 10:41:15
本文实例讲述了php中count获取多维数组长度的实现方法。分享给大家供大家参考。具体分析如下:
先来看看下面程序运行结果:
复制代码 代码如下:$numb=array...
本文实例讲述了php中count获取多维数组长度的实现方法。分享给大家供大家参考。具体分析如下:
先来看看下面程序运行结果:
复制代码 代码如下:
$numb=array(
array(10,15,30),array(10,15,30),array(10,15,30)
);
echo count($numb,1);
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]));
?>
$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]));
?>
$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=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 {
.....
}
?>
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)
?>
$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中count获取多维数组长度的方法
-
Symfony2实现在controller中获取url的方法_php实例
-
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法_php实例
-
php中判断数组是一维,二维,还是多维的解决方法_php实例
-
php使用unset()删除数组中某个单元(键)的方法,unset数组_PHP教程
-
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解_PHP教程
-
php中的一些数组排序方法分享
-
PHP 获取二维数组中某个key的聚合
-
php递归遍历多维数组的方法,php递归多维数组
-
php中count 多维数组长度统计实现方法_PHP教程