如何在PHP中解析此数组?

时间:2019-09-21 10:52:15

标签: php json

昨天我问了一个问题:How to create this JSON in PHP?

这很好用,现在我必须解析服务器的回复-他给了我一个像下面这个例子一样的数组。我该如何运行并获取startTime和以下名称?

为什么呢

<?php $json = file_get_contents("URL");
$data = json_decode($json);
$time1 = $data[0][1]['startTime'];
?>

不起作用?请帮助我理解这一点,并向我解释下一次要解析数组或JSON时如何获得解决方案,以及当您必须解析这样的事情时该怎么做。

有没有可用的工具,您可以在其中发布代码并可以单击所请求的项目,它向您显示代码如何获得此代码?

来自服务器的阵列:

Array (
    [jsonrpc] => 2.0
    [id] => 6d41c7a9e35e441c4e9b66e267523927
    [result] => Array (
        [0] => Array (
            [id] => 403230
            [date] => 20190923
            [startTime] => 1240
            [endTime] => 1330
            [kl] => Array (
                [0] => Array (
                    [name] => Radiodata
                    )
                )
            [te] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [su] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [ro] => Array (
                [0] => Array (
                    [id] => 31
                    )
                )
            [activityType] => Music-Only
            )
        [1] => Array (
            [id] => 403231
            [date] => 20190923
            [startTime] => 1335
            [endTime] => 1425
            [kl] => Array (
                [0] => Array (
                    [name] => Radiodata
                    )
                )
            [te] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [su] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [ro] => Array (
                [0] => Array (
                    [id] => 31
                    )
                )
            [activityType] => Music-Only
            )
        [2] => Array (
            [id] => 407790
            [date] => 20190923
            [startTime] => 1520
            [endTime] => 1610
            [kl] => Array (
                [0] => Array (
                    [name] => Radiodata
                    )
                )
            [te] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [su] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [ro] => Array (
                [0] => Array (
                    [id] => 24
                    )
                )
            [activityType] => Music-Only
            )
        [3] => Array (
            [id] => 407791
            [date] => 20190923
            [startTime] => 1610
            [endTime] => 1700
            [kl] => Array (
                [0] => Array (
                    [name] => Radiodata
                    )
                )
            [te] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [su] => Array (
                [0] => Array (
                    [name] => MUS
                    [longname] => Music
                    )
                )
            [ro] => Array (
                [0] => Array (
                    [id] => 24
                    )
                )
            [activityType] => Radiodata
            )
        )

1 个答案:

答案 0 :(得分:0)

基本上,您使用错误的密钥解析json。检查此代码对您有帮助

    <?php 
    $json = file_get_contents("URL");
    $data = json_decode($json,true);

    foreach($data['result'] as $resData)
    {
        $startTime=$resData['startTime'];
        $endtime=$resData['endTime'];
        echo($startTime); 
        foreach($resData['kl'] as $klData)
        {
            $klname=$klData['name'];
            echo($klname);
            echo '<br>';

        }
        foreach($resData['te'] as $teData)
        {
        $tename=$teData['name'];
        $echo($tename);
        echo '<br>';

        }
    }

    ?>

输出:

Radiodata
MUS
Radiodata
MUS
Radiodata
MUS
Radiodata
MUS