【发布时间】:2015-03-11 14:32:51
【问题描述】:
如何从这个 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']
?
【问题讨论】:
-
您的数据是作为字符串插入的,而不是对象/数组
-
所以这在我的层面上不是问题,这是从我正在使用的 API 返回的 JSON 字符串的问题?似乎应该有一种方法可以将它们变成一个数组,特别是注意产品元素如何以两个括号而不是一个括号结尾
-
我认为数据没有正确存储,是的,"products[0][sku]" vs "products":[{"sku":"ACMEROCKET", "price":32.66} ]
-
转储 $result 的内容使用: echo '
';var_dump($result);echo '
';当你在它的时候把它放到一个函数中。您会很容易看到 JSON 数据未正确编码。
标签: php json multidimensional-array