2012-09-25 51 views
5

可能重複:
Permutations - all possible sets of numbers使用PHP構建概率樹?

我有了一個選項列表的數組, 每個選項都是獨特的,不可重複。

我想建立使用這些選項的概率樹:

$options = array('1','2','3','4','A','E','I','O'); 

所以一個有效的行可能是1-2-E-3-O-I-4-A

我怎樣才能做到這一點? (或至少將我指向正確的方向!)

+0

其實你想找到所有'$ options'數組的排列? – fsenart

+3

請檢查這[問題](http://stackoverflow.com/questions/5506888/permutations-all-possible-sets-of-numbers)。這可能會有所幫助。 –

回答

0
<?php 

function pc_permute($items, $perms = array()) { 
    if (empty($items)) { 
     print 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); 
      pc_permute($newitems, $newperms); 
     } 
    } 
} 

$options = array('1','2','3','4','A','E','I','O'); 
$mass = pc_permute($options); 

?> 
+0

我想顯示所有可能的行 – Hailwood

+0

@Hailwood是這樣的嗎? – Peon

+0

不,他想要所有可能的線,不只是一個隨機... –

0

遞歸可能是最簡單的方法來實現這一點,但它不會很好地擴展到大型數據集。

基本上寫一個函數,該函數需要一個選項數組,打斷一個調用本身。