如何在php中读取嵌套数组

时间:2017-04-30 09:57:31

标签: php arrays json ajax

我有一个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中这样做?请帮我解决这个问题

2 个答案:

答案 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'];