在 PHP 中从 Facebook FQL 结果中删除重复对

发布于 2024-10-15 01:23:54 字数 471 浏览 4 评论 0原文

我正在使用以下 Facebook FQL 查询来获取朋友之间的关系:

SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1 = $myUid) AND uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $myUid)

结果是朋友之间无向关系的两列表,例如:

UID1 UID2
UID2 UID3
UID2 UID1
UID3 UID5

在上面的示例中,关系 (UID1,UID2) 出现两次,一次一次为 (UID1,UID2),一次为 (UID2,UID1)。两种关系是等价的。我希望删除这些重复项,只留下其中一个。

那么,使用 PHP 删除此类重复项的最佳方法是什么?感谢您的任何想法或指点。

最好的,安德烈

I'm using the following Facebook FQL query to fetch the relationships between my friends:

SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM friend WHERE uid1 = $myUid) AND uid2 IN (SELECT uid2 FROM friend WHERE uid1 = $myUid)

The result is a two-column table of undirected relations between my friends, e.g.:

UID1 UID2
UID2 UID3
UID2 UID1
UID3 UID5

In the above example, the relationship (UID1,UID2) appears twice, one as (UID1,UID2) and once as (UID2,UID1). Both relationships are equivalent. I wish to remove such duplicates leaving only one of them.

So, using PHP, what is the best way to remove such duplicates? Thanks for any ideas or pointers.

Best, Andrej

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

阳光①夏 2024-10-22 01:23:54

简单的。

添加

AND uid1 < uid2

到您的查询。

Simple.

Add

AND uid1 < uid2

to your query.

情未る 2024-10-22 01:23:54

如果它必须是 PHP 并且你的结果集不太长:

class UniqueChecker {
  private $aMap = array();

  public function mustAddPair($sItem1, $sItem2) {
    if (empty($this->aMap["$sItem1 $sItem2"]) && empty($this->aMap["$sItem2 $sItem1"])) {
      $this->aMap["$sItem1 $sItem2"] = true;
      return true;
    }
    else
      return false;
  }

}

If it MUST be in PHP and your result set is not too long:

class UniqueChecker {
  private $aMap = array();

  public function mustAddPair($sItem1, $sItem2) {
    if (empty($this->aMap["$sItem1 $sItem2"]) && empty($this->aMap["$sItem2 $sItem1"])) {
      $this->aMap["$sItem1 $sItem2"] = true;
      return true;
    }
    else
      return false;
  }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文