Доброго времени суток! Встала такая задача: Есть Массив типа такого: Array( 0 => 0 1 => 1 2 => 2 3 => 3 ) Количество элементов в массиве произвольное Как путем нехитрых махинаций сделать из него массива типа Array( 0 => 0 1 => 1 2 => 2 3 => 3 4 => 0123 5 => 012 6 => 01 7 => 123 8 => 12 9 => 23 ) т.е. все перебрать все сочетания элементов и дописать в массив Уже два дня бьюсь с решением, если не сложно подтолкните хоть в нужную сторону
Re: ,и объединенить Перебрать все элементы массивадруг с дру комбинаторика http://algolist.manual.ru/maths/combinat/
Re: ,и объединенить Перебрать все элементы массивадруг с дру Решение в студию. А мы глянем, что с ним не так. Первая подсказка - число сочетаний равно факториалу количества элементов.
Re: ,и объединенить Перебрать все элементы массивадруг с дру Вроде решил Код (Text): $arr = Array('0','1','2','3'); function pc_array_power_set($array) { $results = array(array( )); foreach ($array as $element) foreach ($results as $combination) array_push($results, array_merge(array($element), $combination)); return $results; } function reverseAndMergeArr($array){ $i = 0; foreach ($array as $k => $v){ $array[$i] = implode(array_reverse($v)); $i++; } return $array; } $arr = pc_array_power_set($arr); $arr = reverseAndMergeArr($arr); echo '<pre>'; print_r($arr); echo '</pre>';