首页  >  文章  >  后端开发  >  php中count获取多维数组长度以及判断多维数组是否为空实例代码

php中count获取多维数组长度以及判断多维数组是否为空实例代码

怪我咯
怪我咯原创
2017-07-10 13:51:011609浏览

这篇文章主要介绍了php中count获取多维数组长度的方法,实例分析了数组的原理并总结了数组长度计算的方法,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了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(&#39;title&#39; => &#39;新闻1&#39;, &#39;viewnum&#39; => 123, &#39;content&#39; => &#39;ZAQXSWedcrfv&#39;),
 1=>array(&#39;title&#39; => &#39;新闻2&#39;, &#39;viewnum&#39; => 99, &#39;content&#39; => &#39;QWERTYUIOPZXCVBNM&#39;)
);
?>

如果你想统计数组$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(&#39;title&#39; => &#39;新闻1&#39;, &#39;viewnum&#39; => 123, &#39;content&#39; => &#39;ZAQXSWedcrfv&#39;),
 1=>array(&#39;title&#39; => &#39;新闻2&#39;, &#39;viewnum&#39; => 99, &#39;content&#39; => &#39;QWERTYUIOPZXCVBNM&#39;)
);
echo &#39;不统计多维数组:&#39;.count($arr,0);//count($arr,COUNT_NORMAL)
echo "<br/>";
echo &#39;统计多维数组:&#39;.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>

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

一下是判断判断多维数组是否为空的实例代码,代码如下:

<?php
//判断一个数组是否为空
/**
array(
); 空
array(
array(
),
array(
),
array(
)
); 空
array(
array(
),
array(
array(
),
array(
1=>1
)
),
array(
)
); 非 空
*/
function is_array_null($value)
{
if (empty($value))
{
return $value;
}
else
{
return is_array($value) ? array_map(&#39;array_null&#39;, $value) : addslashes($value);
}
}

以上是php中count获取多维数组长度以及判断多维数组是否为空实例代码的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn