我有一个简单的关联数组。
$a = array("a"=>"b", "c"=>"d");
我想检查数组中是否存在键“1”,例如:
isset($a["1"]);
这个字符串被视为整数处理,所以
echo $a["1"]; //prints "d"
如何将其视为字符串?
我不想使用array_key_exists或in_array,因为我的基准测试显示isset会更快。
我有一个简单的关联数组。
$a = array("a"=>"b", "c"=>"d");
isset($a["1"]);
这个字符串被视为整数处理,所以
echo $a["1"]; //prints "d"
如何将其视为字符串?
我不想使用array_key_exists或in_array,因为我的基准测试显示isset会更快。
看起来你想做的事情似乎是不可能实现的。以下内容来源于http://us.php.net/manual/en/language.types.array.php:
键可以是整数或字符串。如果一个键是整数的标准表示,它将被解释为整数(例如,“8”将被解释为8,而“08”将被解释为“08”)。
您可能需要使用Fosco的建议,在所有键上加上前缀。如果您在每个键上使用相同的前缀,则无论您解析可能包含单词和数字的文本,都不会有问题-无论如何都给所有内容加上相同的前缀。
isset($a["1"]) | isset($a[1]) ?
或者只是isset($a[1])
甚至可以使用isset($a[intval(1)])来确保1000%的准确性。
echo $a["1"];
不会输出"d"
。 - goat