注意:未定义偏移量:0

问题描述:

我试图从数组中获得值,但是当我使用$array[0]时,我得到一个PHP通知'未定义偏移量:0'。但是,当我使用$array['id'](应该与使用'0'相同,因为'id'是数组中的第一个键),所以我可以获得该值。我做了一个print_r并输出:注意:未定义偏移量:0

Array ( 
    [id] => 1 
    [username] => test 
) 

我不应该能够使用它的索引获得密钥吗?我相信它在早些时候工作,但我不知道我能做些什么来使它停止工作。有任何想法吗?

不,你不应该能够做到这一点。

你可能会想从什么样mysql_fetch_array,其中,默认情况下,您可以同时使用数字和字符串指标去列获得阵列 - 但你能做到这一点的原因是因为该数组包含那些。

您也可以使用array_values从数组中提取值,以实质上将索引转换为数字值,但实际上并非如此。

+0

谢谢,那正是我想到的 – Preston 2012-01-12 00:29:25

$array['id']不是$array[0]相同。由于术语数组可能与此混淆有关。 PHP的数组不是你所说的另一种语言的数组,它们是地图字典。 (哦,即使它们不是,php数组,地图或字典中元素的顺序也取决于实现,所以虽然你可以使用$tmp = array_values($array); echo $tmp[0];得到id,但是php允许随机播放数组)。