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

    php怎么判断一个数组是否为索引数组

    青灯夜游青灯夜游2022-09-20 20:23:29原创156

    判断步骤:1、用array_keys()获取原数组的全部键名,语法“array_keys(数组)”;2、用array_filter()过滤数组,语法“function f($v){return(is_string($v));}$res=array_filter($keys,"f");”,会返回一个包含字符串元素的过滤数组;3、判断过滤数组是否为空数组,如果为空则数组是索引数组。

    php入门到就业线上直播课:进入学习

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

    在php中,索引数组的下标(键名)由数字组成,如果一个数组中有一个键名不是数字,那么这个数组就是关联数组(不是索引数组)。

    因此只需要判断数组的键名是否都为数字,即可判断一个数组是否为索引数组。

    实现步骤:

    步骤1:使用array_keys()函数获取原数组的全部键名

    array_keys() 函数返回包含数组中所有键名的一个新数组。

    array_keys(array,value,strict)
    参数描述
    array必需。规定数组。
    value可选。您可以指定键值,然后只有该键值对应的键名会被返回。
    strict可选。与 value 参数一起使用。可能的值:
    • true - 返回带有指定键值的键名。依赖类型,数字 5 与字符串 "5" 是不同的。
    • false - 默认值。不依赖类型,数字 5 与字符串 "5" 是相同的。
    <?php
    header('content-type:text/html;charset=utf-8');   
    $arr=array("r"=>"red",2,3,"hello",5,6);
    var_dump($arr);
    $keys=array_keys($arr);
    var_dump($keys);
    ?>

    1.png

    步骤2:使用array_filter()和is_string()函数过滤数组,返回键名数组中的字符串元素

    function f($v){
    	 return(is_string($v));
    }
    $res=array_filter($keys,"f");
    var_dump($res);

    2.png

    会返回一个包含字符串元素的过滤数组

    步骤3:判断过滤数组是否为空数组

    $res==[]

    实现代码:

    <?php
    header('content-type:text/html;charset=utf-8');   
    function f($v){
    		 return(is_string($v));
    }
    function fun($arr){
    	$keys=array_keys($arr);
    	
    	$res=array_filter($keys,"f");
    	if($res==[]){
    		echo "数组是索引数组<br>";
    	}else{
    		echo "数组不是索引数组,是关联数组<br>";
    	}
    }
    
    
    $arr=array("r"=>"red",2,3,"hello",5,6);
    var_dump($arr);
    fun($arr);
    $arr=array(1,2,3,"hello",5,6);
    var_dump($arr);
    fun($arr);
    ?>

    2.png

    推荐学习:《PHP视频教程

    以上就是php怎么判断一个数组是否为索引数组的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php php数组
    上一篇:php中的数组分为哪两种类型 下一篇:php怎么求数组平均值avg
    VIP课程(WEB全栈开发)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• php数组怎么去除数字元素• php数组合并保留全部元素可以吗• php数组的元素类型必须一样吗• php数组键名能省略吗• php数组传递是引用传值吗• php数组键可以用数字或者什么
    1/1

    PHP中文网