首页 > 解决方案 > 数组中未定义的偏移量 - 但我知道它在那里

问题描述

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

我有两个例子。一个是“爆炸”像“AAA|BBB|CCC”这样的字符串,|用作分隔符,然后尝试读取位置 1 处的结果数组。 var_dump()正确显示具有正确值的偏移量 0 到 2 的数组。但我仍然收到通知。

另一个例子是我得到一个数组(来自 AJAX 调用,我对其进行 json_decode 等),然后我输入了以下代码:

foreach (array_keys($myDecodedArray) as $k) {
    $value = $myDecodedArray[$k];
    someOtherCode();
}

我在尝试阅读时出现了该死的通知$myDecodedArray[$k],尽管 php 本身刚刚告诉我密钥存在!

所以,我解决了最后一个案例

foreach ($myDecodedArray as $k => $value) {
    someOtherCode();
}

但是,这仍然非常烦人,对我来说毫无意义。

你们中有人遇到过这个问题吗?你有什么可能导致这种情况的信息吗?

[编辑] Rahul Meshram 的建议(我在评论中赞成)解决了我的第二个问题。但是,第一种情况仍然会发生(将字符串分解为数组,然后尝试通过其数字键访问该数组的值)。键是数字的(gettype 返回“整数”,该键上的 var_dump 也显示一个整数,具有正确的值),但尝试访问 $explodedArray[1] 仍会导致显示该通知,尽管 $explodedArray 的键为 0, 1 和 2,以及关联的值。

标签: php

解决方案


推荐阅读