通过php在JSON对象中提取JSON对象

时间:2013-03-15 23:56:39

标签: php json

我有如下所示的JSON数据:

{
    "15": {
        "nid": "15",
        "status": "1",
        "created": "1352652530",
        "changed": "1353780901",
        "title": "some data",
        "type": "some data",
        "tracking_url": {
            "10": {
                "affiliate": "OMG",
                "url_part1": "some data"
            }
        },
        "primary_category": "Travel",
        "active_affiliate": "OMG"
    },
    "16": {
        "nid": "16",
        "status": "1",
        "created": "1352652530",
        "changed": "1353780901",
        "title": "some data",
        "type": "some data",
        "tracking_url": {
            "11": {
                "affiliate": "OMG",
                "url_part1": "some data"
            }
        },
        "primary_category": "Travel",
        "active_affiliate": "OMG"
    }
}

我可以使用以下方法成功解码JSON:

$response = json_decode($p, true);

现在我必须从$response(提取 tracking_url 中的元素)中提取 url_part1 会员值,我就是无法做到。

1 个答案:

答案 0 :(得分:1)

假设$p中的JSON结构实际上是这样的:

"16": {
    "nid":"16",

    "tracking_url": {
        "10": {
            "affiliate":"OMG",
            "url_part1":"some data"
        }
    }

},

您可以访问url_part1并使用以下

加入关联
$response = json_decode($p, true);

$urlPart = array();
$affiliate = array();

foreach ($response as $nid => $data) {
    $urlPart[$nid]   = $data['tracking_url']['10']['url_part1'];
    $affiliate[$nid] = $data['tracking_url']['10']['affiliate'];
}

这只是如何访问数据的一个示例,您可以根据需要写入您需要的任何变量。