繁体   English   中英

从json_decode获取多维数组

[英]Getting multidimensional array from json_decode

如何从此JSON响应访问$ result ['products']?

{"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']

谢谢大家。事实证明,这只是错误地传递了JSON。

这是不正确的JSON,但如果您确实需要,可以尝试执行以下操作:

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

但这是非常糟糕的做法 因为在json中可能是在服务器上执行的恶意代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM