【问题标题】:I can't change JSON into a PHP array我无法将 JSON 更改为 PHP 数组
【发布时间】: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

标签: php arrays json


【解决方案1】:

它打印出我的问题的第一部分。

因为$sidearr现在是一个字符串,再解码,你会得到一个数组。

$sidearr = json_decode($sidearr, true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    • 2014-05-03
    • 2021-07-20
    • 2022-11-22
    相关资源
    最近更新 更多