在PHP

时间:2015-05-01 11:11:30

标签: php arrays

我有一个带字符串值的数组,想要将它们组合起来。示例数组:

Array("a", "b", "c");

现在我想要一个包含此String值的所有组合的数组。对于这个例子:

Array("abc", "acb", "bac", "bca", "cab", "cba");

每个值应恰好包含一次。问题是,这个数组的长度是可变的: - (

到目前为止,我尝试了许多foreach和构造,但还没有得到解决方案。我想构建一个像

这样的方法
function combineArrayValues ($arr)

我希望有人可以给我一个提示,如何随机组合String并获得任何长度的数组的所有可能组合。谢谢!

最诚挚的问候,

理查德

1 个答案:

答案 0 :(得分:1)

您可以使用此函数获取数组值的所有组合,

function combinevalues($items, $perms = array()) {
    if (empty($items)) { 
        echo join(' ', $perms) . "<br />";
    } else {
        for ($i = count($items) - 1; $i >= 0; --$i) {
             $newitems = $items;
             $newperms = $perms;
             list($foo) = array_splice($newitems, $i, 1);
             array_unshift($newperms, $foo);
             combinevalues($newitems, $newperms);
         }
    }
}

$arr = array('a', 'b', 'c');

var_dump(combinevalues($arr));