跟随者/ followee的php逻辑

时间:2012-04-28 00:16:01

标签: php codeigniter

更新:我明白了。请参阅下面的答案。

我正在尝试在应用程序级别编写一些逻辑来识别下表中的朋友(共同关注者)。我的查询以类似于下表的格式返回数据(借用this问题,但我不需要查询,该部分已完成):

A B
1 2 // mutual followers, so "friends"
2 1 // mutual followers, so "friends"
1 3 // user 1 is following 3
1 4 // user 1 is following 4

那么如何编写一些逻辑来显示用户A = B和B = A,但是在不同的行中呢?使用PHP / codeigniter。

在回应请求时,这是SQL表和查询:

Users table - uid, fname, lname
Followers table - user_id, follow_id

Select users.uid, users.fname, users.lname, u.uid, u.fname, u.lname
FROM users
INNER JOIN follows f on (f.user_id=users.uid)
INNER JOIN users u on (u.uid=f.follow_id)

2 个答案:

答案 0 :(得分:1)

我想你想要这样的东西:

$results = array(array(1,2),array(2,1),array(1,3),array(1,4));
$mutual_users = array_filter($results,function($elem)use($results){
    if(in_array(array_reverse($elem),$results)){
        return true;
    }
});
print_r($mutual_users);

答案 1 :(得分:1)

好的,我明白了。我需要为追随者表第二次INNER JOIN。我将下面的代码添加到我的SQL查询中,并且它有效。

INNER JOIN followers f2 ON u.id = f2.user_id AND users.id = f2.follow_id