【问题标题】:PHP foreach loop on JSON data from Bandsintown来自 Bandsintown 的 JSON 数据的 PHP foreach 循环
【发布时间】:2015-05-18 23:55:45
【问题描述】:

编写我自己的 bandintown 提要,因为我不喜欢他们提供的默认小部件等 - RSVP 弹出窗口很难看

成功地为第一个事件输出了一个数组标题,我缺少的是如何通过结果运行 foreach,因为它们没有要定位的包含数组

<?php
    //Get the list of events from the function
    $json = file_get_contents("http://api.bandsintown.com/artists/kiss/events.json?api_version=2.0&app_id=kiss");

    $data = json_decode($json, true);

    //var_dump($data);

     echo $data->title;

?>

输出的 JSON 没有要定位的数组名称,所以我不能说 foreach($data as $arrayname)

  array (size=22)
    0 => 
      array (size=13)
        'id' => int 9722885
        'title' => string 'Kiss @ Rock im Revier 2015 in Gelsenkirchen, Germany' (length=52)
        'datetime' => string '2015-05-29T00:00:00' (length=19)
        'formatted_datetime' => string 'Friday, May 29, 2015 at 12:00AM' (length=31)
        'formatted_location' => string 'Gelsenkirchen, Germany' (length=22)
        'ticket_url' => string 'http://www.bandsintown.com/event/9722885/buy_tickets?app_id=kiss&artist=Kiss' (length=76)
        'ticket_type' => string 'Tickets' (length=7)
        'ticket_status' => string 'available' (length=9)
        'on_sale_datetime' => null
        'facebook_rsvp_url' => string 'http://www.bandsintown.com/event/9722885?app_id=kiss&artist=Kiss&came_from=67' (length=77)
        'description' => string 'Der Ring 2015' (length=13)
        'artists' => 
          array (size=1)
            0 => 
              array (size=8)
                ...
        'venue' => 
          array (size=6)
            'name' => string 'Rock im Revier 2015' (length=19)
            'city' => string 'Gelsenkirchen' (length=13)
            'region' => string '07' (length=2)
            'country' => string 'Germany' (length=7)
            'latitude' => float 51.5166667
            'longitude' => float 7.05
    1 => 
      array (size=13)
        'id' => int 8995518
        'title' => string 'Kiss @ O2 World Hamburg in Hamburg, Germany' (length=43)

【问题讨论】:

  • “没有要定位的数组名称”是什么意思?数组名称为$data

标签: php arrays json foreach


【解决方案1】:

true 指定为json_decode 使其返回关联数组,而不是对象,因此您应该使用['title'] 而不是-&gt;title

$data = json_decode($json, true);
foreach ($data as $song) {
    echo $song['title'] . "<br>";
}

【讨论】:

    猜你喜欢
    • 2014-01-26
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    相关资源
    最近更新 更多