PHP关联数组 - 如何将整数视为字符串

bco*_*lan 7 php arrays associative-array isset

我有一个简单的关联数组.

$a = array("a"=>"b", "c"=>"d");
Run Code Online (Sandbox Code Playgroud)

我想检查数组中是否存在键"1",例如

isset($a["1"]);
Run Code Online (Sandbox Code Playgroud)

此字符串被视为整数,因此

echo $a["1"]; //prints "d"
Run Code Online (Sandbox Code Playgroud)

如何将其作为字符串处理?

我不想使用array_key_exists或in_array,因为我的基准测试显示isset会快得多.

Mic*_*urr 6

您似乎无法做您想做的事情.来自http://us.php.net/manual/en/language.types.array.php:

键可以是整数或字符串.如果一个键是整数的标准表示,它将被解释为这样(即"8"将被解释为8,而"08"将被解释为"08").

您可能不得不使用Fosco建议为所有键添加前缀.如果您在每个键上使用相同的前缀,那么如果您正在解析可能包含单词和数字的文本并不重要 - 无论如何都要在所有键上添加相同的前缀.