从嵌套的json循环php中提取数据


Pull data from nested json loop php

好吧,我已经打了两天了!!这是我的Json结构。[

{
    "uuid":"/random number==",
    "meeting_number":7196503037,
    "host_id":"random number",
    "topic":"My's Personal Meeting Room",
    "start_time":"2015-01-06T22:01:07Z",
    "timezone":"America/Denver",
    "duration":56,
    "total_size":378080,
    "recording_count":1,
    "recording_files":[
        {
            "id":"long number",
            "meeting_id":"/NS90bsSTLeGzo6cT0nwXw==",
            "recording_start":"2015-01-06T22:01:09Z",
            "recording_end":"2015-01-06T22:01:14Z",
            "file_size":378080,
            "play_url":"https://myurl"
        }
    ]
},

我正试图从顶级数组(名为"会议")中提取"开始时间",并从第二级数组(recording_files)中提取播放Url。我正在使用json_decode将文件解码为数组。

我已经尝试了在这个网站上找到的许多变体,但似乎没有什么能进入播放url。变体1$aha=json_decode($response,true);

        foreach ($aha['meetings'] as $key => $value){
            foreach($key['recording_files'] as $subkey => $newvalue){

        echo '<p>Time : '.$value['start_time'].'</p>
  <a href="'.$newvalue['play_url'].'">Recording</a><br>';

}}这在foreach中提取了一个无效参数。

变体2foreach($aha['meetings']为$key=>$value){

        echo '<p>Time : '.$value['start_time'].'</p>
  <a href="'.$value['play_url'].'">Recording</a><br>';

}这为play_url拉取未定义的索引。与引用['play_url']之前的['recording_files']的代码相同

变化3:然后我试着放弃第一层,只从第二层提取数据:$aha=json_decode($response,true);

        foreach ($aha['meetings']['recording_files'] as $key => $value){

        echo '<p>Time : '.$value['recording_start'].'</p>
  <a href="'.$value['play_url'].'">Recording</a><br>';

}这给了我一个['recording_files']上的未定义索引和foreach错误。

变体4。$aha=json_decode($response,true);

        foreach ($aha['meetings'] as $key => $value){
         $link=$key['recording_files'];
        echo '<p>Time : '.$value['start_time'].'</p>
  <a href="'.$link['play_url'].'">Recording</a><br>';

}这让我最接近——没有错误,但没有链接。我假设这里的代码看到了字段,但没有从中提取数据…

请帮助一个新手json!!

如果真的有一个$aha['meetings'](您没有显示它),那么在第二个foreach:中使用值而不是键

foreach($aha['meetings'] as $value){
    foreach($value['recording_files'] as $newvalue){

修复它的最终代码。

        $aha = json_decode($response,true);
        foreach ($aha['meetings'] as $key => $value){           
        echo '<p>Time : '.$value['start_time'].'</p>
       <a href="'.$value['recording_files'][0]{'play_url'}.'">Recording</a><br>';}

这只是找到引用play_url片段的正确格式的问题。非常感谢大家!

编辑:

如果你的数据看起来像这样:

$str = "{'"meetings'":[{
    '"uuid'":'"/random number=='",
    '"meeting_number'":7196503037,
    '"host_id'":'"random number'",
    '"topic'":'"My's Personal Meeting Room'",
    '"start_time'":'"2015-01-06T22:01:07Z'",
    '"timezone'":'"America/Denver'",
    '"duration'":56,
    '"total_size'":378080,
    '"recording_count'":1,
    '"recording_files'":[
        {
            '"id'":'"long number'",
            '"meeting_id'":'"/NS90bsSTLeGzo6cT0nwXw=='",
            '"recording_start'":'"2015-01-06T22:01:09Z'",
            '"recording_end'":'"2015-01-06T22:01:14Z'",
            '"file_size'":378080,
            '"play_url'":'"https://myurl'"
        }
    ]
}]}";

$json = json_decode($str);
$res = $json->{'meetings'};
foreach($res as $keys){
    echo $keys->{'start_time'}."<br>";
    foreach ($keys->{'recording_files'} as $data){
        echo $data->{'play_url'}."<br>";
        echo $data->{'recording_start'}."<br>";
    }
}