我尝试访问数组元素,但由于某种原因,这给我带来了一些麻烦。
所以我在$lead
内得到了这个数组:
Array
(
["City"] => Other
[Company Name] =>
[Company Email] =>
[Contact Form URL] =>
[Comments] =>
)
我试着像这样访问它:
var_dump($lead['"City"']);
但由于某种原因,我得到一个未定义的索引错误:
注意:未定义的索引:“城市”
我不知道为什么会这样?
修改
这是我使用highlight_string(print_r($lead, TRUE));
时的输出:
Array
(
["City"] => Other
[Company Name] =>
[Company Email] =>
[Contact Form URL] =>
[Comments] =>
)
还有这段代码:
foreach($lead as $k => $v){
var_dump($k);
die();
}
我明白了:
string(9) ""City""
答案 0 :(得分:1)
所以感谢评论,好像我的密钥开头有一个UTF-8 BOM character (EF BB BF),这就是为什么我无法访问它。当我在这里发布时,Stack Overflow似乎也剥夺了角色。
使用此代码:
foreach($lead as $k => $v){
var_dump($k);
die();
}
它表明密钥长度必须为9个字节。
string(9) ""City""
//↑
在十六进制查看器的帮助下,您还可以看到EF BB BF
字符。所以解决方案是使用foreach循环来获取数组元素或使用正确的键:
foreach($lead as $k => $v){
echo $v;
break;
}
或
echo $lead[chr(0xEF) . chr(0xBB) . chr(0xBF) . '"City"'];