本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑
在php中,可利用count()函数来判断。
<?php
header('content-type:text/html;charset=utf-8');
$array = array("php", 11, '', 12, "PHP中文网",13,"green",2021,"mysql","14",15);
if (count($array) == count($array, 1)) {
echo '是一维数组';
} else {
echo '是二维数组';
}
?>
方案原理:
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视频教程》
以上就是php怎么判断是一维数组还是二维数组的详细内容,更多请关注编程界其它相关文章!