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;
    }
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
指定された配列から 重複した値を取り除いた結果を返します . 重複かどうかの判定は 引数に指定されたコンパレータを使って行われます . コンパレータが指定されなかった場合は { @link DefaultComparator } が適用されます .