注意:未定义偏移量:0
问题描述:
我试图从数组中获得值,但是当我使用$array[0]
时,我得到一个PHP通知'未定义偏移量:0'。但是,当我使用$array['id']
(应该与使用'0'相同,因为'id'是数组中的第一个键),所以我可以获得该值。我做了一个print_r并输出:注意:未定义偏移量:0
Array (
[id] => 1
[username] => test
)
我不应该能够使用它的索引获得密钥吗?我相信它在早些时候工作,但我不知道我能做些什么来使它停止工作。有任何想法吗?
答
不,你不应该能够做到这一点。
你可能会想从什么样mysql_fetch_array
,其中,默认情况下,您可以同时使用数字和字符串指标去列获得阵列 - 但你能做到这一点的原因是因为该数组包含都那些。
您也可以使用array_values
从数组中提取值,以实质上将索引转换为数字值,但实际上并非如此。
答
$array['id']
是不是与$array[0]
相同。由于术语数组可能与此混淆有关。 PHP的数组不是你所说的另一种语言的数组,它们是地图或字典。 (哦,即使它们不是,php数组,地图或字典中元素的顺序也取决于实现,所以虽然你可以使用$tmp = array_values($array); echo $tmp[0];
得到id,但是php允许随机播放数组)。
谢谢,那正是我想到的 – Preston 2012-01-12 00:29:25