• 技术文章 >后端开发 >PHP问题

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

    青灯夜游青灯夜游2022-04-11 20:32:27原创561

    在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, "PHP中文网",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则不检测多维数组,将只获取一维的元素个数。

    因此只需要比较一下省略$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怎么判断是一维数组还是二维数组的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 数组
    上一篇:php怎么检测一个整数是几位数 下一篇:PHP基础巩固之运算符和流程控制
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php正则中i表示什么意思• PHP基础巩固之基础语法、变量和常量(总结分享)• 一起聊聊thinkPHP3.2.3中sql注入漏洞• php怎么删除数组中键为偶数的元素• php怎么检测一个整数是几位数
    1/1

    PHP中文网