2013-01-07 23 views
0

我有此數組:從陣列獲取的數據通過可變

$array = array(); 
$array['123'] = 'abc'; 
$array['456'] = 'def'; 

現在我想從基於一個變量,數組中獲取數據。這是我試過的:

$variable = '123';  
$result = $array[$variable]; 
echo $result; 

這似乎是錯誤的,但我不知道爲什麼。它導致一個警告:

Illegal offset type […] 
+2

我無法複製您的錯誤。你確定你沒有其他事情嗎? – Supericy

+0

當您嘗試使用對象或數組作爲訪問數組的鍵時,通常會出現非法偏移類型,您確定這是您正在使用的代碼? –

+0

是和否:從另一個數組變量創建$ variable($ variable = $ post ['id'];) – user1952748

回答

0

我跑到我的編譯器,確切的代碼,它的工作;可能是一個空白錯誤(你不能看到的隨機字符,但仍然會導致錯誤)。我會嘗試重新輸入該代碼段並刪除舊段。

+0

$ variable是從另一個數組變量($ variable = $ post ['id'];)創建的 - 可能會導致問題嗎? – user1952748

+1

添加一行你回顯$ post ['id'];並看看它說什麼。如果$ post ['id']等於123或類似的話,你不應該有問題。 – Michael

+0

我同意邁克爾。我建議在你的問題的評論中嘗試相同的方法。 –

0

我建議嘗試這種以確保變量強制轉換爲字符串:

$result = $array[(string)$variable]; 

這是最有可能您的問題。我認爲也許$ post ['id']或者錯誤地是一個多維數組,或者以某種方式成爲一個不被接受爲數組鍵的對象。