I'm getting:
Notice: Undefined offset: 0
在我的代码中,我可以使用print_r打印出我正在尝试获取的元素,而且它已经被明确定义。
function get_members($entries_found) {
$members = $entries_found[0]['member'];
...
}
如果我打印 print_r($members),我会得到预期的输出,但我仍然收到 Notice 提示。
有任何线索吗?
在从get_members
访问$entries_found
之前,我真的不知道会发生什么。
但是我也遇到了同样的问题。print_r
和var_dump
向我展示了索引存在,但当我尝试访问它时,我得到了offset error
。
在我的情况下,我使用json_decode
解码了一个JSON字符串,但没有设置assoc
标志。
// Not working
$assocArray = json_decode('{"207":"sdf","210":"sdf"}');
echo $assocArray[207];
// working witht the assoc flag set
$assocArray = json_decode('{"207":"sdf","210":"sdf"}', true);
echo $assocArray[207];
我从这里找到了解决方案:访问已存在的数组元素时出现未定义的偏移量
做
var_dump($entries_found);
为了检查数组确实具有零偏移量,您还可以尝试重置数组指针。
reset($entries_found);
先检查它是否已设置
if (isset($entries_found[0]['member'])) // do things
$members = @$entries_found[0]['member'];
print_r
输出可能会有所帮助。 - Jason McCrearyprint_r($entries_found)
,特别是如果您真的想编写良好的代码,请在获取值之前检查索引的存在。 - hakre