2012-01-12 184 views
1

我試圖從數組中獲得值,但是當我使用$array[0]時,我得到一個PHP通知'未定義偏移量:0'。但是,當我使用$array['id'](應該與使用'0'相同,因爲'id'是數組中的第一個鍵),所以我可以獲得該值。我做了一個print_r並輸出:注意:未定義偏移量:0

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

我不應該能夠使用它的索引獲得密鑰嗎?我相信它在早些時候工作,但我不知道我能做些什麼來使它停止工作。有任何想法嗎?

回答

1

不,你不應該能夠做到這一點。

你可能會想從什麼樣mysql_fetch_array,其中,默認情況下,您可以同時使用數字和字符串指標去列獲得陣列 - 但你能做到這一點的原因是因爲該數組包含那些。

您也可以使用array_values從數組中提取值,以實質上將索引轉換爲數字值,但實際上並非如此。

+0

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

2

$array['id']不是$array[0]相同。由於術語數組可能與此混淆有關。 PHP的數組不是你所說的另一種語言的數組,它們是地圖字典。 (哦,即使它們不是,php數組,地圖或字典中元素的順序也取決於實現,所以雖然你可以使用$tmp = array_values($array); echo $tmp[0];得到id,但是php允許隨機播放數組)。