src/Peach/Util/Arrays.php
public static function unique(array $arr, Comparator $c = null)
    {
        if (!isset($c)) {
            $c = DefaultComparator::getInstance();
        }
        $sorted = self::asort($arr, $c);
        $delKey = array();
        list($lastKey, $lastValue) = each($sorted);
        while (list($key, $value) = each($sorted)) {
            if ($c->compare($value, $lastValue) === 0 && $value == $lastValue) {
                $delKey[] = $key;
                continue;
            } else {
                $lastKey = $key;
                $lastValue = $value;
            }
        }
        foreach ($delKey as $key) {
            unset($arr[$key]);
        }
        return $arr;
    }
public static function unique(array $arr, Comparator $c = null)
    {
        if (!isset($c)) {
            $c = DefaultComparator::getInstance();
        }
        $sorted = self::asort($arr, $c);
        $delKey = array();
        list($lastKey, $lastValue) = each($sorted);
        while (list($key, $value) = each($sorted)) {
            if ($c->compare($value, $lastValue) === 0 && $value == $lastValue) {
                $delKey[] = $key;
                continue;
            } else {
                $lastKey = $key;
                $lastValue = $value;
            }
        }
        foreach ($delKey as $key) {
            unset($arr[$key]);
        }
        return $arr;
    }
指定された配列から, 重複した値を取り除いた結果を返します.
重複かどうかの判定は, 引数に指定されたコンパレータを使って行われます.
コンパレータが指定されなかった場合は {@link DefaultComparator} が適用されます.

@param  array      $arr
@param  Comparator $c   コンパレータ
@return array