Удалить повторяющиеся пары из Facebook FQL результат в PHP - PullRequest
0 голосов
/ 01 февраля 2011

Я использую следующий FQL-запрос Facebook, чтобы получить отношения между моими друзьями:

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, каков наилучший способ удаления таких дубликатов? Спасибо за любые идеи или указатели.

Бест, Андрей

Ответы [ 2 ]

2 голосов
/ 01 февраля 2011

Простой.

Добавьте

AND uid1 < uid2

к вашему запросу.

1 голос
/ 01 февраля 2011

Если он ДОЛЖЕН быть в 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;
  }

}
...