重複の可能性:
順列-考えられるすべての数値のセット
オプションのリストを含む配列があります。各オプションは一意であり、繰り返すことはできません。
次のオプションを使用して確率ツリーを作成したいと思います。
$options = array('1','2','3','4','A','E','I','O');
したがって、1つの有効な行は次のようになります。1-2-E-3-O-I-4-A
これどうやってするの?(または少なくとも私を正しい方向に向けてください!)
重複の可能性:
順列-考えられるすべての数値のセット
オプションのリストを含む配列があります。各オプションは一意であり、繰り返すことはできません。
次のオプションを使用して確率ツリーを作成したいと思います。
$options = array('1','2','3','4','A','E','I','O');
したがって、1つの有効な行は次のようになります。1-2-E-3-O-I-4-A
これどうやってするの?(または少なくとも私を正しい方向に向けてください!)
再帰はおそらくこれを実装する最も簡単な方法ですが、大規模なデータセットにうまく拡張することはできません。
基本的に、オプションの配列を取り、呼び出し自体から1つを切り取る関数を記述します。
<?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 );
?>