我有此數組:從陣列獲取的數據通過可變
$array = array();
$array['123'] = 'abc';
$array['456'] = 'def';
現在我想從基於一個變量,數組中獲取數據。這是我試過的:
$variable = '123';
$result = $array[$variable];
echo $result;
這似乎是錯誤的,但我不知道爲什麼。它導致一個警告:
Illegal offset type […]
我有此數組:從陣列獲取的數據通過可變
$array = array();
$array['123'] = 'abc';
$array['456'] = 'def';
現在我想從基於一個變量,數組中獲取數據。這是我試過的:
$variable = '123';
$result = $array[$variable];
echo $result;
這似乎是錯誤的,但我不知道爲什麼。它導致一個警告:
Illegal offset type […]
我跑到我的編譯器,確切的代碼,它的工作;可能是一個空白錯誤(你不能看到的隨機字符,但仍然會導致錯誤)。我會嘗試重新輸入該代碼段並刪除舊段。
$ variable是從另一個數組變量($ variable = $ post ['id'];)創建的 - 可能會導致問題嗎? – user1952748
添加一行你回顯$ post ['id'];並看看它說什麼。如果$ post ['id']等於123或類似的話,你不應該有問題。 – Michael
我同意邁克爾。我建議在你的問題的評論中嘗試相同的方法。 –
我建議嘗試這種以確保變量強制轉換爲字符串:
$result = $array[(string)$variable];
這是最有可能您的問題。我認爲也許$ post ['id']或者錯誤地是一個多維數組,或者以某種方式成爲一個不被接受爲數組鍵的對象。
我無法複製您的錯誤。你確定你沒有其他事情嗎? – Supericy
當您嘗試使用對象或數組作爲訪問數組的鍵時,通常會出現非法偏移類型,您確定這是您正在使用的代碼? –
是和否:從另一個數組變量創建$ variable($ variable = $ post ['id'];) – user1952748