首页 / PHP / php-元素数量可变的数组,向上计数
php-元素数量可变的数组,向上计数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-元素数量可变的数组,向上计数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1419字,纯文字阅读大概需要3分钟。
内容图文
我想要一个多维数组,其中每个元素都是X个元素的数组-假设3.
我基本上想在第3个元素中从0到y计数(假设为12),然后在0,0,12之后,我希望数组中的下一个元素为数组0,1,0-以12,12结尾, 12
我有点以base … 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秒内算上我?
感谢您的所有建议.
解决方法:
该算法预先计算总共需要的循环数,然后使用$i计算每个数组位置的值.
$max= 13;
$elements = 4;
$loops = pow($max, $elements);
$main_array = array();
for($i = 0; $i < $loops; $i++){
for($j = 0; $j < $elements; $j++){
$main_array[$i][$j] = floor($i/pow($max,$elements-1-$j))%$max;
}
}
这是我发现的最优雅的解决方案,只有2个嵌套循环和1次使用幂和模数的算术运算才能每次获得所需的数组.
您只需要调整元素和/或基数即可.
花了0.014s来计算3个位置的数组.
花了0.25s的时间计算出4个位置的数组.
用了4.08秒来计算5个位置的数组*
*对于5个位置,我需要增加memory_limit,我想是因为数组太大了,如果您只输出数字而不是存储一个巨大的数组,那么此脚本会更轻巧.
内容总结
以上是互联网集市为您收集整理的php-元素数量可变的数组,向上计数全部内容,希望文章能够帮你解决php-元素数量可变的数组,向上计数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。