数组中未定义的偏移量-但我知道它在那里

时间:2019-04-18 10:01:05

标签: php

我有一个带有键和值的数组(或关联数组)。 然后,当尝试读取数组中的键之一时,会收到“未定义的偏移量”通知。

我有两个例子。一种是使用|作为分隔符来“分解”诸如“ 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,以及相关的值。

0 个答案:

没有答案