【问题标题】:PHP Twitter Search API - ForEach() Not WorkingPHP Twitter 搜索 API - ForEach() 不工作
【发布时间】:2011-12-20 04:53:28
【问题描述】:

对于你们中的一些人来说,这是一个愚蠢的简单问题,但我似乎无法打印出结果。

我不断收到警告:第 14 行 C:\xampp\htdocs\td.php 中为 foreach() 提供的参数无效

谢谢

$url = "http://search.twitter.com/search.json?q=shoes&include_entities=true&rpp=2";

$data = file_get_contents($url);
$result = json_decode($data, true);

foreach ($result->results as $data) {
    echo $data->created_at;
}

json 返回是这样的。

Array
(
    [completed_in] => 0.019
    [max_id] => 1.4886632421341E+17
    [max_id_str] => 148866324213411841
    [next_page] => ?page=2&max_id=148866324213411841&q=shoes&rpp=2&include_entities=1
    [page] => 1
    [query] => shoes
    [refresh_url] => ?since_id=148866324213411841&q=shoes&include_entities=1
    [results] => Array
        (
            [0] => Array
                (
                    [created_at] => Mon, 19 Dec 2011 20:44:32 +0000
    ...
    etc
    ...

【问题讨论】:

    标签: php json twitter


    【解决方案1】:

    $result 是一个数组,但您将它视为一个对象。同样,它的内部组件$results 也是一个关联数组的数组,但您将它视为一个对象。 $data 在循环上下文中是一个数组,其中 created_at 作为其键之一:

    // Access [results] as an array key
    foreach ($result['results'] as $data) {
        // $data is $results[0], $results[1], ...,$results[n]
        // [created_at] is an array key of $results[n]
        echo $data['created_at'];
    }
    

    【讨论】:

    • 是的,就是这样。我尝试了 $result['results'] 但也没有更改为 $data['created_at']。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    • 1970-01-01
    • 2013-01-12
    相关资源
    最近更新 更多