我不太确定如何解释我的问题。
我有像这样的数组
$foo = array{"one", "two", "three"}
我需要将每个值推送到其他值。
需要这样的结果......
$new = array{"one two three", "one two", "one three", "two three", "one", "two", "three"}
是否可以做出那样的结果?
我希望有人可以帮助我。
之前感谢:)
答案 0 :(得分:1)
看起来你正在寻找一个powerset,这里是算法的链接:http://en.wikipedia.org/wiki/Power_set
答案 1 :(得分:1)
这是对你的问题的一个相当简单的尝试。
<?php
function perms($array) {
$res = array( array() );
foreach ($array as $val) {
$n = count($res);
for($i=0; $i < $n; $i++) {
$res[] = array_merge( array($val), $res[$i] );
}
}
return $res;
}
$array = array("one", "two", "three");
print_r( perms($array) );
结果可以在Ideone找到。输出是多维的形式,但我相信你可以弄清楚如何压扁它。