我需要帮助遍历一个简单的数组并找到其元素的所有可能组合,如下所示:
array('a', 'b', 'c');
预期结果是:
array(
0=>array('a', 'a', 'a'),
1=> array('a', 'a', 'b')
);
我完全不知所措,非常感谢任何帮助或指点!
这就是我到目前为止所拥有的。
$array = array('red', 'blue', 'green', 'white');
$count = count($array);
$current = array_fill(0, $count, $array[0]);
$last = array_fill(0, $count, end($array));
$output = array();
$i = 0;
while ($current != $last) {
$indexes = str_pad($i, $count, "0", STR_PAD_LEFT);
$j = str_split($indexes);
foreach ($j as $a => $b) {
if (isset($array[$b])) {
$output[$i][] = $array[$b];
}
}
$current = $output[$i];
$i++;
}
// cleaver duplication removal
$result = array_map("unserialize", array_unique(array_map("serialize", $output)));
echo '<pre>';
print_r($result);
echo '</pre>';
重复删除代码来自这里。