微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php怎么判断是一维数组还是二维数组

PHP中,可利用count()函数来判断,该函数获取数组长度,如果省略第二个参数,将只获取一维的元素个数;因此只需要比较一下省略参数和不省略参数时,获取的长度是否一样即可,语法“count($arr)== count($arr,1)”。

本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑

PHP中,可利用count()函数来判断。

<?PHP
header('content-type:text/html;charset=utf-8');   
$array = array(PHP, 11, '', 12, 编程之家,13,green,2021,MysqL,14,15); 
	if (count($array) == count($array, 1)) {
	    echo '是一维数组';
	} else {
	    echo '是二维数组';
}
?>

1.png

方案原理:

count ( mixed $var [, int $mode ] ) – 计算数组中的单元数目或对象中的属性个数

$mode:为可选参数,可以省略。

  • 如果省略 $mode 参数,或者将其设置为 COUNT_norMAL 或者 0,count() 函数将不检测多维数组;

  • 如果 $mode 设置为 COUNT_RECURSIVE 或者 1,count() 函数将递归计算数组中元素的个数,对于计算多维数组的元素个数尤为有用。

如果省略 $mode 参数,count则不检测多维数组,将只获取一维的元素个数。

因此只需要比较一下省略$mode参数和不省略$mode参数时,获取的长度是否一样即可判断是一维数组还是二维数组。

  • $mode参数示例:

<?PHP
header(Content-type:text/html;charset=utf-8);
$arr= array
(张三,
25,
    array(高数,PHP教程,英语),
);
//输出语句
echo 数组长度为:.count($arr,1);
echo <br>不递归检测数组,长度为:.count($arr);
?>

输出

数组长度为:6
不递归检测数组,长度为:3

看了上面的输出结果,是不是感到疑惑,数组中不是只有5个元素(张三、25、高数、PHP教程、英语)吗,为什么结果显示的数组长度不是5,而是6呢?

其实是因为,此时count()函数循环统计二维数组中的所有元素,“array(高数,PHP教程,英语)”会被当做一个整体统计一次,它里面的元素(高数、PHP教程、英语)又会被统计一次,所以最终结果为 6。

推荐:《PHP教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐