我有以下JSON:
{"name":"Hello World","products":[{"name":"cup","type":"large"},{"name":"spoon","type":"small"}]}
我正在使用卷曲请求,然后才能获得:
$vars = json_decode($app->request->getBody(), true);
print_r($vars);
,但它取消了name
和type
的引号,因此,当我尝试在它们上使用foreach循环时,它并不认为它们是字符串。
Array
(
[name] => Hello World
[products] => Array
(
[0] => Array
(
[name] => cup
[type] => large
)
[1] => Array
(
[name] => spoon
[type] => small
)
)
)
当我使用这样的操作时:
foreach ($vars as $var){
print_r($var);
echo $var[0]['name'];
}
我得到错误: Illegal string offset 'name'
为什么会发生?感谢您的所有帮助!
我得到错误:非法字符串偏移'name'为什么会发生?
因为您要迭代的第一个元素是$vars['name']
,它的值'Hello World'
是字符串。 'Hello World'['name']
只是不起作用。
看起来您只想通过$vars['products']
迭代。
您正在循环外循环。看起来您只想循环产品。
foreach ($vars['products'] as $var) {
echo $var['name'];
}