【问题标题】:JSON search event names and list URL valuesJSON 搜索事件名称和列表 URL 值
【发布时间】:2015-11-17 17:30:59
【问题描述】:

我正在从 URL 将事件列表作为 JSON 文件加载:

$file = file_get_contents('http://ecample.com/listing.php?'); 
$data = json_decode($file); 
?>

直接输出看起来像这样(更多的值和 mor 行):

    [{"id":"1","name":"NAME_1","booking_url":"https://ecample.com/Event_ID65654","category_id":"195"},
    {"id":"2","name":"NAME_2","booking_url":"https://ecample.com/Event_ID65654","category_id":"195"},
    "id":"1","name":"NAME_1","booking_url":"https://ecample.com/Event_ID65654","category_id":"195"}]

我需要搜索所有值为 "name":"NAME_1" 的条目并打印出 "booking_url" 的值。

我尝试了不同的方法,例如 array_seach() 等,但没有成功。

感谢任何帮助!

【问题讨论】:

  • 向我们展示您尝试过的一些示例。
  • 我已经尝试了很多 foreach 的东西,比如 foreach ($data['name']['booking_url'] as $key=>$value){ echo $value[1]." , ".$value[2]." , ".$value[3]. "
    "; } 和一堆我已经删除的其他东西......
  • 问题是我无法访问内部 foreach 中的数组 :( 如果我 print_r $data 它看起来像这样:Array ( [0] => stdClass Object ( [id] => 1 [name] => NAME_1 [booking_url] => http://ecample.com/listing.php [category_id] => 195 ) [1] => stdClass Object ( [id] => 2 [name] => NAME_2 [booking_url] => http://ecample.com/listing.php [category_id] => 195 ) )

标签: php arrays json multidimensional-array


【解决方案1】:

试试这个

<?php

    $file = file_get_contents('http://ecample.com/listing.php?'); 
    $data = json_decode($file, true);

    foreach ($data as $r)
    {
        if ($r['name'] == 'NAME_1')
        {
            echo $r['booking_url'];
        }
    }

?>

【讨论】:

  • THX 但我已经尝试过了...会出现一个空白屏幕 :( 如果我 print_r $data 它看起来像这样 code Array ( [0] => stdClass Object ( [id] => 1 [name] => NAME_1 [booking_url] => ecample.com/listing.php [category_id] => 195) [1] => stdClass Object ([id] => 2 [name] => NAME_2 [booking_url] => ecample.com/listing.php [category_id] => 195 ) )
【解决方案2】:

另一种选择是在对象上下文中访问您的数据,因此:

<?php

    $file = file_get_contents('http://ecample.com/listing.php?'); 
    $data = json_decode($file);

    foreach ($data as $r)
    {
        if ($r->name == 'NAME_1')
        {
            echo $r->booking_url;
        }
    }

?>

任何一个都应该同样有效。

【讨论】:

    猜你喜欢
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2012-04-26
    • 1970-01-01
    相关资源
    最近更新 更多