【发布时间】:2013-03-09 20:36:30
【问题描述】:
我想要一个多维数组,其中每个元素都是 X 元素的数组 - 比如说 3。
我基本上想在第三个元素中从 0 计数到 y(比如说 12),然后在 0,0,12 之后我希望数组中的下一个元素是数组 0,1,0 - 以 12 结束,12,12.
我在以 ...12 为底数进行计数,当它完成时,会跳到数组中的下一个元素。
例如
0,0,0
0,0,1
...
0,0,12
0,1,0
0,1,1
0,1,2
...
0,1,12
0,2,0
...
12,12,12
好的,很好 - 我可以这样做
$maxCountNumber= 12;
$i=1;
for ($j=0; $j < $maxCountNumber+1; $j++) {
for ($k=0; $k < $maxCountNumber+1; $k++) {
for ($l=0; $l < $maxCountNumber+1; $l++) {
print "<br/>$i: $j, $k, $l";
$results[$i] = array($j, $k, $l);
$i++;
}
}
}
但是,如果我不想每次都只需要 3 个元素 - 有时我需要 4 个 - 而不是数百、十和单位,我想要千、百、十和单位……或者 7 个元素怎么样?
我确信递归是答案,但我似乎无法解决这个特定问题。
除非有什么事情可以在 12 秒而不是 10 秒内完成?
感谢您的所有建议。
【问题讨论】:
-
模数通常用于这样的事情。你也看过 base_convert 吗?
-
请注意,您的实现实际上是 base 13;你从 0 数到 12,包括 13 个数字。另外,您只是想数数还是希望在任意循环中的每个点都做某事?
-
是的,会有更多 - 我想创建一个数组,其中数组中的所有元素加起来就是我要达到的总数 - 所以当 array[1] + array[2] + array[3] = 12,放入结果数组。
-
嘿 AmyKate...我想我现在为你准备了一些东西。你肯定知道如何挑选问题……解决方案有点简单,但很难弄清楚……至少对我来说是这样。
-
大家好,我知道了! :D 和@NathanielFord 它确实以 13 为底。我为我的解决方案感到非常自豪,至少与其他解决方案相比,并且考虑到我不太擅长数学。 (虽然我是亚洲人 xD)
标签: php recursion multidimensional-array