PHP Очистка перестановочного массива

Привет всем, в основном, у меня есть массив:

array('a', 'b', 'c'); 

Теперь я запускаю его через функцию перестановки массива, и результат:

 Array ( [0] => Array ( [0] => C ) [1] => Array ( [0] => B ) [2] => Array ( [0] => B [1] => C ) [3] => Array ( [0] => C [1] => B ) [4] => Array ( [0] => A ) [5] => Array ( [0] => A [1] => C ) [6] => Array ( [0] => C [1] => A ) [7] => Array ( [0] => A [1] => B ) [8] => Array ( [0] => B [1] => A ) [9] => Array ( [0] => A [1] => B [2] => C ) [10] => Array ( [0] => A [1] => C [2] => B ) [11] => Array ( [0] => B [1] => A [2] => C ) [12] => Array ( [0] => B [1] => C [2] => A ) [13] => Array ( [0] => C [1] => A [2] => B ) [14] => Array ( [0] => C [1] => B [2] => A ) ) 

Теперь мой вопрос: как я могу очистить этот массив так, чтобы:

 array ( C, B ) is the same as array ( B, C ) 

и он удаляет второй массив

Как я могу это сделать?

EDIT … после некоторых исследований, основанных на ваших ответах, вот что я придумал:

 array_walk($array, 'sort'); $array = array_unique($array); sort($array); // not necessary 

Solutions Collecting From Web of "PHP Очистка перестановочного массива"

Просто соберите составные массивы:

 foreach ($arrays AS &$arr) { sort($arr); } 

Таким образом, {"C", "B"} становится => {"B", "C"}
и {"B", "C"} становится => {"B", "C"}

которые идентичны.

 array_multisort($array); array_unique($array); 

Вы также можете использовать пакет груши Math_Combinatorics .

 require_once 'Combinatorics.php'; $combinatorics = new Math_Combinatorics; $a = array('a', 'b', 'c'); // creating and storing the combinations for($combinations = array(), $n=1; $n<=count($a); $n++) { $combinations = array_merge($combinations, $combinatorics->combinations($a, $n)); } // test output foreach($combinations as $c) { echo join(', ', $c), "\n"; } 

печать

 a b c a, b a, c b, c a, b, c