- var_dump: documentation ( source)
- array_slice: documentation ( source)
- implode: documentation ( source)
- array_fill: documentation ( source)
<?php
function combinations($arr) {
$combinations = array_fill(0, count($arr)+1, array());
$combinations[0] = array('');
for ($i = 0, $n = count($arr); $i < $n; ++$i) {
for ($l = $n-$i; $l > 0; --$l) {
$combinations[$l][] = implode('', array_slice($arr, $i, $l));
}
}
return $combinations;
}
$arr = array('d', 'f', 'w', 's');
var_dump(combinations($arr));