【发布时间】:2022-01-25 02:34:50
【问题描述】:
由于某些奇怪的原因,我无法将以下 JSON 更改为 PHP 数组:
{"sides0":{"name_nl":"Voorkant100","name":"Frontside100","template_overlay":""},"sides1":{"name_nl":"Achterkant100","name":"Backside100","template_overlay":"1"}}
我已经验证了 json 并且它是有效的。
首先我将$product['sides'] 发布到我的页面,其中包含:
"{\"sides0\":{\"name_nl\":\"Voorkant100\",\"name\":\"Frontside100\",\"template_overlay\":\"\"},\"sides1\":{\"name_nl\":\"Achterkant100\",\"name\":\"Backside100\",\"template_overlay\":\"1\"}}"
然后我像这样使用 json_decode:
$sidearr = json_decode($product['sides'], true);
如果我这样做:
echo '<pre>';
print_r($sidearr);
echo '</pre>';
它打印出我的问题的第一部分。
现在我想循环它,但即使是这个测试也没有显示:
foreach($sidearr as $side){
echo 'test';
}
我尝试测试它是否是一个数组:
echo is_array($sidearr) ? 'Array' : 'not an Array';
echo "\n";
它告诉我它不是一个数组。这是为什么?我一直认为在 json 字符串上使用 json_decode 并在函数内部添加 true 会将其转换为 PHP 数组。
【问题讨论】:
-
如果
$product['sides']包含如上所示的 JSON,那么它应该可以工作 3v4l.org/mDqXh