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

时间:2011-01-09 04:27:47

标签: php arrays associative-array isset

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

$a = array("a"=>"b", "c"=>"d");

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

isset($a["1"]);

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

echo $a["1"]; //prints "d"

如何将其视为字符串?

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

3 个答案:

答案 0 :(得分:6)

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

  

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

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

答案 1 :(得分:0)

isset($ a [“1”])| isset($ a [1])?

或者只是isset($ a [1])

甚至isset($ a [intval(1)])是1000%肯定。

答案 2 :(得分:0)

如果echo $ a ['1']打印d,那么你的数组元素比你想象的要多。

请参阅var_dump($ a)和print_r($ a)函数以帮助您调试代码。