我有一个带字符串值的数组,想要将它们组合起来。示例数组:
Array("a", "b", "c");
现在我想要一个包含此String值的所有组合的数组。对于这个例子:
Array("abc", "acb", "bac", "bca", "cab", "cba");
每个值应恰好包含一次。问题是,这个数组的长度是可变的: - (
到目前为止,我尝试了许多foreach和构造,但还没有得到解决方案。我想构建一个像这样的方法function combineArrayValues ($arr)
我希望有人可以给我一个提示,如何随机组合String并获得任何长度的数组的所有可能组合。谢谢!
最诚挚的问候,
理查德
答案 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));