【发布时间】:2012-04-26 07:56:15
【问题描述】:
我有一个包含两个变量的 PHP 页面:$nbRank 和 $nbNumeric。根据这两个变量,我想生成一个包含所有现有组合的数组。例如:
如果$nbRank = 3 和$nbNumeric = 2 我会:
0 0 0
0 0 1
0 0 2
0 1 0
0 1 1
0 1 2
0 2 0
0 2 1
0 2 2
1 0 0
1 0 1
1 0 2
1 1 0
1 1 1
1 1 2
1 2 0
1 2 1
1 2 2
2 0 0
2 0 1
2 0 2
2 1 0
2 1 1
2 1 2
2 2 0
2 2 1
2 2 2
所以,我创建了不同的循环和公式来获得最终结果,但它不起作用。这就是我所做的:
$result = array();
$nbIntRank = 0;
$nbIntNumeric = 0;
$nbRank = array();
$nbNumeric = array();
$nb_rangs = 3;
$nb_chiffres = 2;
for ($i = 1; $i <= $nb_rangs; $i++){
$nbRank[$i] = 0;
}
$nbIntRank = count($nbRank);
for ($i = 0; $i <= $nb_chiffres; $i++){
$nbNumeric[$i] = $i;
}
$nbIntNumeric = count($nbNumeric);
$algo = ($nb_rangs * ($nb_chiffres + 1)) * ($nb_rangs * ($nb_chiffres + 1));
$nbLine = $algo / ($nb_rangs);
$occ = 0;
for ($i = 0; $i < $nbLine; $i++){
foreach ($nbRank as $nbrItem => $nbrValue){
$result[$i][] = $nbrValue;
$occ++;
}
}
echo '#############<br />';
echo '### DATAS ###<br />';
echo '#############<br /><br />';
echo '- Nb Elements : '.$algo.'<br />';
echo '- Nb Lines : '.$nbLine.'<br />';
echo '- Nb Valuable Occurency : '.$occ.'<br />';
echo '<br /><hr /><br />';
echo '##############<br />';
echo '### PARSER ###<br />';
echo '##############<br /><br />';
echo '<pre>';
var_dump($result);
echo '</pre>';
我设法用空值创建了我的最终数组(81 个值,27 行,每行 3 个元素),但它只包含 0。
【问题讨论】:
-
请贴出完整的代码,包括循环。
-
@AdamLiss 完成,我添加了完整的源代码。
-
@amit 是的,它可以帮助我,谢谢! :)
-
抱歉,我错误地删除了评论:\ @JohnSmeuth:回答之前提出的问题:“您也可以接受伪代码答案解决方案吗?”
标签: php algorithm loops combinations