2013-01-07 21 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']或者错误地是一个多维数组,或者以某种方式成为一个不被接受为数组键的对象。