php怎么判断一个数组是否为索引数组
时间 : 2023-02-15 14:38:02声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

php判断一个数组是否为索引数组,非常简单,可以采用以下几种方法:

(1)is_array()函数

使用is_array()函数可以判断一个变量是否是数组,如果是数组,返回true;否则,返回false。

例如:

$array = array(1,2,3);

if(is_array($array)){

echo "这是一个数组";

}else{

echo "这不是一个数组";

}

(2)array_keys()函数

array_keys()函数可以取出数组的键名,可以判断一个数组是索引数组(键名都是整数型)还是关联数组(键名都是字符型)

例如:

$array = array(1,2,3);

$res = array_keys($array);

if($res[0] == 0){

echo "这是一个索引数组";

}

(3)array_unique()函数

array_unique()函数可以去掉数组中重复的值(如果数组是索引数组,那么值也会作为键名),并返回数组键名最大的值,如果比较的值是真的,则说明数组是索引数组,如果比较的值是假的,则说明数组不是索引数组。

例如:

$array = array(1,2,3);

$res = max(array_unique($array));

if($res == count($array)-1){

echo "这是一个索引数组";

}

以上就是php如何判断一个数组是否为索引数组的方法,使用以上三种方法根据情况选择最合适的方法。

PHP中数组是最重要的数据结构,一般情况下,我们将数组分为「索引数组」和「关联数组」。索引数组一般是按照下标来定义数组元素的位置,而关联数组则是按照某个特定键来定义数组元素的位置,所以关联数组和索引数组具有不同的数据结构,我们有时候需要判断一个数组是不是索引数组,下面一起来看看PHP应该怎么判断一个数组是否为索引数组吧。

以关联数组为例,如果用print_r函数输出就能很容易的看出数组的结构,比如:

$arr = array('name'=>'tom', 'age'=>18)

print_r($arr)//输出结果:Array ( [name] => tom [age] => 18 )

从结果可见,这是一个带有键名的数组,那么判断它是不是索引数组的方法也就比较容易,只要判断这个数组的键名是不是数值型的就行,如果是数值型的就说明它是索引数组,否则就不是。

可以用PHP内置函数array_keys()来检测一个数组是不是索引数组,如果参数$array中的key均为数值型,那么就可以判定这个数组是一个索引数组。具体实现代码如下:

$arr = array('name'=>'tom', 'age'=>18);

$key_value = array_keys($arr);

if($key_value[0] === 0){

echo '这个数组是一个索引数组';

}else{

echo '这个数组不是一个索引数组';

}

至于数组索引是从0还是从1开始的也可以用这个函数来进一步的判断,只要判断数组的第一个下标值是不是0就行了。

总之,要判断一