2015-05-01 26 views
-2

我有一个带有字符串值的数组,并且想要合并这些值。示例数组:在PHP中组合数组值

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

现在我想要一个数组,其中包含此String值的所有组合。对于此示例:

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

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

我有很多的foreach和结构试了一下,但迄今为止没有得到解决呢。我想建立像

function combineArrayValues ($arr) 
的方法

我希望有人可以给我一个提示,如何结合随机字符串,并得到所有可能的组合对于任何长度的数组。谢谢!

最好的问候,

理查德

回答

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));