-1

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

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。

4

1 回答 1

1

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

$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 函数在生成的键数组中搜索非数字。如果你得到一个非零的匹配键计数,你就有一个关联数组。

于 2013-10-10T20:28:01.457 回答