当print_r函数正确打印所有值时,无法解析PHP中的嵌套Json数组

时间:2019-02-12 03:48:35

标签: php json parsing

我正在尝试解析json数组字符串。尽管print_r可以正确打印所有值,但是在获取记录时却失败了。

我一定做的非常非常错误。您能帮忙更正吗?

这是我的代码

IP

1 个答案:

答案 0 :(得分:0)

您的问题是,在您的$bank$category数组中,所有键的尾部都有空格。如果将引用更改为包括这些空格,则代码可以正常工作。参见https://3v4l.org/GX5iC

或者,您可以在foreach循环中使用类似以下代码的方式修剪数组键:

$bank_keys = array_map('trim', array_keys($bank_data));
$bank_data = array_combine($bank_keys, array_values($bank_data));

您还可以创建一个递归函数来修剪整个$dataset值。例如:

function trim_keys($array) {
    foreach ($array as $key => $value) {
        echo "trimming key '$key' to '" . trim($key) . "'\n";
        unset($array[$key]);
        $array[trim($key)] = $value;
        if (is_array($value))
            $array[trim($key)] = trim_keys($value);
        else
            $array[trim($key)] = $value;
    }
    return $array;
}

然后,通过使用

$dataset = trim_keys($dataset);

您的代码可以正常工作。 Demo on 3v4l.org