PHP Array перестановка uniq упорядочено

ВЫЯВЛЯЕТ, ЧТО МОЯ ОПЕРАЦИЯ МАТЫ БЫЛА НЕПРАВИЛЬНОЙ! ЧИТАТЬ Комбинации массивов PHP НА ПРИМЕРЕ КОМБИНАЦИИ


Я ищу в Интернете в течение 3 недель (включая SO), я не нахожу кого-то, кто уже спросил или решил это.

Мне нужна перестановка массива в PHP только Uniq приказал ценности.

$array = array('Number1', 'Number2', 'Number3', 'Number4', 'Number5', 'Number6');[/ NOEDIT]

обычно перестановка будет похожа


.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number2, Number4, Number1, ...;
[/ NOEDIT]

Но мне это нужно приказал а также уник. поэтому третья строка будет приказано


.1 Number1, Number2, Number3, ...;
.2 Number1, Number2, Number4, ...;
.3 Number1, Number2, Number4, ...;
[/ NOEDIT]

И это означает, что строка 3 НЕ является уникальной и не будет сохранена в новом массиве.

2-й пример

array('A','B','C')
A
AB
AC
ABC
ACB
B
BC
BA
BCA
BAC
C
CA
CB
CAB
CBA
[/ NOEDIT] это неправильно для меня

Мне нужен вывод, как это


A
B
C
AB
BC
AC
ABC
[/ NOEDIT]

Я вроде решил это до сих пор. НО мое решение похоже каменный век и просто сортирует все новые array_permutations и array_filter их. это как 100-летнее время расчета, потому что 6 чисел, переставленных со всеми возможными вариантами, похожи на X ^ 10 -.-

Пожалуйста, помогите мне, ребята.

кстати: это мой первый пост здесь, так что будьте нежнее: D

3

Решение

Я настоятельно советую вам посмотреть модуль Python под названием itertools.

Это модуль для эффективного зацикливания и содержит многочисленные операции, включая перестановки, комбинаторику и многое другое.

Несмотря на то, что это модуль, написанный на языке Python, нетрудно перенести код на язык PHP. Однако, поскольку некоторые из этих операций могут потребовать значительного использования памяти, рекомендуется использовать PHP 5.5+, потому что в этой версии генераторы были включены.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]