如何用PHP判断一个数组是索引数组还是关联数组?

2026-04-06 08:092阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计916个文字,预计阅读时间需要4分钟。

如何用PHP判断一个数组是索引数组还是关联数组?

判断步骤:

1.使用 `array_keys()` 获取原数组的所有键名。

2.使用 `array_filter()` 过滤数组,保留所有字符串键。

3.返回一个包含所有字符串键的数组。

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

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

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

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

如何用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); ?>登录后复制

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

function f($v){ return(is_string($v)); } $res=array_filter($keys,"f"); var_dump($res);登录后复制

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

步骤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); ?>登录后复制

推荐学习:《PHP视频教程》

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

本文共计916个文字,预计阅读时间需要4分钟。

如何用PHP判断一个数组是索引数组还是关联数组?

判断步骤:

1.使用 `array_keys()` 获取原数组的所有键名。

2.使用 `array_filter()` 过滤数组,保留所有字符串键。

3.返回一个包含所有字符串键的数组。

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

php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用

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

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

如何用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); ?>登录后复制

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

function f($v){ return(is_string($v)); } $res=array_filter($keys,"f"); var_dump($res);登录后复制

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

步骤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); ?>登录后复制

推荐学习:《PHP视频教程》

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