2015-05-01 29 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));