xschool atlanta
xschool ortigas
xschool bagio
我将生成一个简单的组合。
如何在php语言中生成下面的数组
arr1[0]=> xschool atlanta
arr1[1]=>xschool ortigas
arr1[2]=>xschool bagio
arr1[3]=>xschool atlanta,xschool ortigas
arr1[4]=>xschool atlanta,xschool bagio
arr1[5]=>xschool ortigas,xschool bagio
arr1[6]=>xschool atlanta,xschool ortigas,xschool bagio
我无法在脑海中设置算法......
为什么我需要这个算法?有时我们的兼职教师可以在不同的一天在两个分支机构工作 因此,当我们将教师添加到我们的系统时,组合框应该向我们显示上面的列表(数组)。
答案 0 :(得分:2)
我可能会为你提供方向(伪代码),这只是解决这个问题的众多方法之一。你必须实现自己的代码;)。
从000生成二进制数列表 - > 111 每个数字匹配1个排列。
000
001 => xschool atlanta
010 => xschool ortigas
100 => xschool bagio
110 => xschool atlanta,xschool ortigas
101 => xschool atlanta,xschool bagio
011 => xschool ortigas,xschool bagio
111 => xschool atlanta,xschool ortigas,xschool bagio
你要完成的其余部分。玩得开心编码;)
答案 1 :(得分:-1)
是, 我解决了我的问题。代码如下:
function combine_set_well($array) {
// initialize by adding the empty set
$results = array(array( ));
foreach ($array as $element)
foreach ($results as $combination)
array_push($results, array_merge(array($element), $combination));
return $results;
}
$set = array('xschool atlanta', 'xschool ortegas', 'xschool bagio');
$ayarla=combine_set_well($set);
asort($ayarla);
foreach ($ayarla as $combination) {
print join(",", $combination) . "<br/>";
}