我有一个带有键和值的数组(或关联数组)。 然后,当尝试读取数组中的键之一时,会收到“未定义的偏移量”通知。
我有两个例子。一种是使用|
作为分隔符来“分解”诸如“ AAA | BBB | CCC”之类的字符串,然后尝试读取位置1处的结果数组。
var_dump()
正确显示了偏移量为0到2且具有正确值的数组。但我仍然得到通知。
另一个例子是我得到一个数组(通过AJAX调用,我对其进行json_decode等),然后键入以下代码:
foreach (array_keys($myDecodedArray) as $k) {
$value = $myDecodedArray[$k];
someOtherCode();
}
尽管php本身只是告诉我密钥已经存在,但我在尝试阅读$myDecodedArray[$k]
时出现了该死的通知!
所以,我通过解决了最后一种情况
foreach ($myDecodedArray as $k => $value) {
someOtherCode();
}
但是仍然,这非常烦人,对我来说毫无意义。
你们中有人遇到过这个问题吗? 您是否有任何可能的原因信息?
[编辑] Rahul Meshram的建议(我在评论中提出了建议)解决了我的第二个问题案例。 但是,第一种情况仍然会发生(将字符串爆炸到数组中,然后尝试通过其数字键访问该数组的值)。 键是数字键(gettype返回'integer',该键上的var_dump也显示一个带有正确值的整数),但是尝试访问$ explodedArray [1]仍会显示该通知,尽管$ explodedArray具有键0, 1和2,以及相关的值。