使用php构建概率树?
可能重复:使用php构建概率树?,php,tree,probability,Php,Tree,Probability,可能重复: 我有一个数组,它有一个选项列表, 每个选项都是唯一的,不能重复 我想使用以下选项构建概率树: $options = array('1','2','3','4','A','E','I','O'); 因此,一个有效行可以是1-2-E-3-O-I-4-A 我该怎么做?(或者至少给我指出了正确的方向!)递归可能是实现这一点的最简单方法,但它不能很好地扩展到大型数据集 基本上写一个函数,它接受一系列选项,从调用本身中去掉一个。 <?php function pc_permute($
我有一个数组,它有一个选项列表, 每个选项都是唯一的,不能重复 我想使用以下选项构建概率树:
$options = array('1','2','3','4','A','E','I','O');
因此,一个有效行可以是1-2-E-3-O-I-4-A
我该怎么做?(或者至少给我指出了正确的方向!)递归可能是实现这一点的最简单方法,但它不能很好地扩展到大型数据集 基本上写一个函数,它接受一系列选项,从调用本身中去掉一个。
<?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 );
?>
我想显示所有可能的lines@Hailwood像这样的?不,他想要的是所有可能的线,而不是一个随机的…钥匙能重复吗?意思是,其中一个选项是否可以是E-1-A-4-2-E-O-4
?正如他在问题中所说,$options值是唯一的,因此char E只能是行中的一个。实际上,您希望找到$options
数组的所有排列?请检查此项。这可能会有帮助。