从json_decode获取多维数组

时间:2015-01-13 15:21:24

标签: php json multidimensional-array

如何从此JSON响应中访问$ result ['产品']?

{"503380":{"response_code":"100","click_id":"10215bdfce7c","product_qty_30":"3","products[0][product_id]":"30","products[0][sku]":"ACMEROCKET","products[0][price]":"32.66"}}

$result = json_decode($result, 1);

然后当我做

print_r($result['products]);

我得到了

Notice: Undefined index: products

但是当我做的时候

print_r($result);

我得到了

Array
(
    [503380] => Array
        (
            [response_code] => 100
            [click_id] => 10215bdfce7c
            [product_qty_30] => 3
            [products[0][product_id]] => 30
            [products[0][sku]] => ACMEROCKET
            [products[0][price]] => 32.66
        )

)

我注意到每个产品元素后面有两个结尾括号(]),但是如何通过

访问它们
$result['products']

2 个答案:

答案 0 :(得分:0)

非常感谢..事实证明,只是JSON传递错误。

答案 1 :(得分:0)

这是不正确的JSON,但如果您真的需要,可以尝试这样的事情:

$result = json_decode($json, true);
foreach($result[503380] as $key=>$value) {
    @eval("$" . $key . " = \"" . $value . "\";");
}
var_dump($products);

但它非常 BAD PRACTICE!因为在json中可能是在您的服务器上执行的恶意代码。