我有一个json数据,这是一个复杂的嵌套数据。这就是这样的
Array
(
[title] => Title
[description] => description
[arrayGroup] => Array
(
[owner] => Array
(
[name] => owner
[apiListings] => Array
(
[product_number1] => Array
(
[availableVersions] => Array
(
[v1.1.0] => Array
(
[resourceName] => Product name
)
[v0.1.0] => Array
(
[resourceName] => Product name
)
)
[apiName] => product_number1
)
[product_number1] => Array
(
[availableVersions] => Array
(
[v1.1.0] => Array
(
[resourceName] => Product name
)
[v0.1.0] => Array
(
[resourceName] => Product name
)
)
[apiName] => product_number1
)
)
)
)
)
)
)
)
对于这个数组,我想要[resourceName]的数据为[v1.1.0]和[apiName] 我怎么能在PHP中这样做?请帮我解决这个问题
答案 0 :(得分:1)
让我们说你像这样分配你的嵌套数组数组:
$object = array(...); //your array made from JSON data
现在,为了获得product1所需的信息,你必须从尊重顺序的数组中选择它(所以你给出越来越多嵌套数组的文本索引):
$resourceNameProduct1 = $object['arrayGroup']['owner']['apiListings']['product_number1']['availableVersions']['v1.1.0']['resourceName'];
$apiNameProduct1 = $object['arrayGroup']['owner']['apiListings']['product_number1']['apiName'];
例如,对于$resourceNameProduct1
,您从$object
数组转到$object['arrayGroup']
(第一个[...]
)而不是$ object ['arrayGroup'] ['owner'] { {1}} [...]`)等。
一旦你在子阵列的“内部”,例如(second
您可以忘记整个$object['arrayGroup']['owner']
并关注对象下的内容> arrayGroup>所有者。
旁注:如果您要使用属性而不是数组来处理对象,您可以使用不同的选择器执行相同操作:
$object
请注意$resourceNameProduct1 = $object.arrayGroup.owner.apiListings.product_number1.availableVersions.{'v1.1.0'}.resourceName;
的{{1}} - 这是因为该字符串包含点,并且您希望明确请求{'...'}
属性而不是v1.1.0
属性v1.1.0
的{{1}}。
答案 1 :(得分:0)
<?php
$resourceName = $variable['arrayGroup']['owner']['apiListings']['product_number1']['availableVersions']['v1.1.0']['resourceName'];
$apiName = $variable['arrayGroup']['owner']['apiListings']['product_number1'][apiName'];