我正在使用以下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,删除此类重复项的最佳方法是什么?感谢您的任何想法或指示。
Best,Andrej
答案 0 :(得分:2)
简单。
添加
AND uid1 < uid2
查询。
答案 1 :(得分:1)
如果它必须在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;
}
}