我有此数组:从阵列获取的数据通过可变
$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