通过 php 检查这是什么类型的数组


Check what kind of array this is via php

我正在寻找一种简单的方法来查看此数组是否:

array('apples', 'bananas');

是否关联,即key=>value.现在PHP会给你类似的东西:

array(2){
    [0]=>'apples'
    [1] => 'bananas'
}

如果您var_dump上述数组。所以理论上我有我的关联数组。但我正在寻找的是查看array('key' => 'some value', 'some_other_key' => 'some other value');是否是一个"真正的"关联数组,或者它只是一个常规数组。

我已经通过堆栈看到了几篇关于此的帖子,但是他们的很多答案真的很复杂或写得不好,甚至根本没有OO。

你的意思是你想区分纯数字键数组和字符串键数组?

$string_keys = preg_grep('/'D/', array_keys($your_array));
if (count($string_keys) > 0) {
   echo "at least one non-numeric key - it''s associative";
} else {
   echo "no non-numeric keys. it's a normal array";
}

简而言之:获取数组中的所有键,使用 preg_grep 函数在生成的键数组中搜索非数字。如果获得匹配键的非零计数,则表示具有关联数组。