梳理查询和排列结果

时间:2016-04-18 02:48:53

标签: php mysql arrays

基本上我想要实现的是将第一个查询与第二个查询结合起来我遇到的麻烦是我无法将第一个查询的结果排列到然后在第二个使用。这是我的第一个查询,它实现的是它从我的用户中选择通常看起来像这样的所有房间主题,welcome to my #room hope you #enjoy一旦选择一个,它将剥离单词的主题,并且只保留哈希 - 标签,例如它会保持#room#enjoy一旦它通过并选择所有房间主题的所有哈希标签,然后它将根据它们在所有用户的主题中使用的频率来排序。

$sql = mysql_query("SELECT subject FROM `users`");
$row = mysql_fetch_array($sql);

$freqDist = [];
foreach($results as $row)
{
        $words = explode(" ", $row);
        foreach($words as $w)
        {
                if (array_key_exists($w, $freqDist))
                        $freqDist[$w]++;
                else
                        $freqDist[$w] = 1;
        }
}
arsort($freqDist);

foreach($freqDist as $word => $count)
{
    if (strpos($word, '#') !== FALSE)
        echo "$word: $count\n";
    else
        echo "$word: does not contain hashtag, DROPPED\n";
}

现在我想要实现的是我尝试从上面的查询中排除结果,然后我可以对从上面抓取的每个哈希标记执行操作。下面我已经包含了代码,基本上我面临的问题完全在于$all = array("hashtag1", "hashtag2", "hashtag3");,因为我想要实现的不是直接输入我想要对我执行操作的哈希标记希望通过使用上述查询来抓取它们。

$all = array("hashtag1", "hashtag2", "hashtag3");
    $trending = $all;
    foreach($trending as $tags)
    { 
    $sql =  mysql_query("SELECT * FROM `users` WHERE `subject` LIKE '%$tags%'");
        $sums =  mysql_query("SELECT SUM(viewers) AS viewers FROM `users` WHERE `subject` LIKE '%$tags%'");
            $num_rows = mysql_num_rows($sql);
            $row = mysql_fetch_assoc($sql);
            $sum = mysql_fetch_assoc($sums);
    }

所以再次只是为了概述我的问题我试图从第一个查询中获取结果并将它们用作第二个查询的数组。我为这个问题的长度道歉,我只是假设它会帮助你更好地理解我的问题。

1 个答案:

答案 0 :(得分:0)

根据我的理解,您希望将hashtag值存储在数组中。如果是这样,那么只需更新你的foreach()

$hashWord =  array();
foreach($freqDist as $word => $count)
{
    if (strpos($word, '#') !== FALSE)
        echo "$word: $count\n";
        $hashWord[] = $word;
    else
        echo "$word: does not contain hashtag, DROPPED\n";
}