我有一个简单的关联数组。
$a = array("a"=>"b", "c"=>"d");
我想检查数组中是否存在键“1”,例如
isset($a["1"]);
此字符串被视为整数,因此
echo $a["1"]; //prints "d"
如何将其视为字符串?
我不想使用array_key_exists或in_array,因为我的基准测试显示isset会快得多。
答案 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)函数以帮助您调试代码。