1
function getposts($search){
    $url = "http://search.twitter.com/search.json?q=".$search."&include_entities=true&result_type=mixed";
    $value = file_get_contents($url);
    $array = json_decode($value, true);

    foreach($array['results'] as $id){
        $uniquearray[] = array_unique($id);
    }

    for($i=0;$i<count($uniquearray);$i++){
        $output .= $uniquearray[$i]['from_user_id'];
        $output .= "<br />";
    }
    return $output;
}

这就是我尝试过的,但它似乎不起作用它现在只是得到最后一篇文章,我认为那是因为它过滤了每个用户的所有值,因为其中一些来自不同的用户,但另一个键相同的值它会删除它们. 我只想避免重复的 from_user_id 键值。

有人可以帮我解决这个问题吗?我正在使用推特 API。并使用此网址:

http://search.twitter.com/search.json?q=apitesttweet&include_entities=true&result_type=mixed

4

2 回答 2

1

我在这里做了类似的回答

你可以根据你的问题调整这个。

function getposts($search){
    $url = "http://search.twitter.com/search.json?q=".$search."&include_entities=true&result_type=mixed";
    $value = file_get_contents($url);
    $array = json_decode($value, true);

    return $array['results'];
}

function arrayUniqueFromKey(array $arr,$key)
{
    $titles = array();$ret = array();
    foreach ($arr as $v) {
        if (!in_array($v[$key],$titles)) {
            $titles[] = $v[$key];
            $ret[] = $v;
        }
    }
    return $ret;
}
$posts = getposts("apitesttweet");
echo count($posts)." Total posts".PHP_EOL; // 3 Total posts

$uniqs = arrayUniqueFromKey($posts, "from_user_id");
echo count($uniqs). " Unique posts".PHP_EOL; // 2 Unique posts

print_r($uniqs);
于 2012-12-12T09:18:28.510 回答
0

它确实有效。我的错误是我试图在循环本身中过滤它。当我将 array_unique 从过滤器中取出时,它起作用了。

<?php 
function getids($search){
    $url = "http://search.twitter.com/search.json?q=".$search."&include_entities=true&result_type=mixed";
    $value = file_get_contents($url);
    $array = json_decode($value, true);

    $uniquearray = array();
    for($i=0;$i<count($array['results']);$i++){
            $uniquearray[] = $array['results'][$i]['from_user_id'];
    }

    $uniquearray = array_unique($uniquearray);
    return $uniquearray;
}
?>

我让它更短更干净,让它只返回一个数组。

于 2012-12-12T09:03:20.377 回答