大佬教程收集整理的这篇文章主要介绍了php – 具有超过3700万种可能性的多个foreach,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
8个街区有以下几种可能性:
*Block 1: 12 possibilities *Block 2: 8 possibilities *Block 3: 8 possibilities *Block 4: 11 possibilities *Block 5: 16 possibilities *Block 6: 11 possibilities *Block 7: 5 possibilities *Block 8: 5 possibilities
这提供了潜在的37,171,200种可能性.
我只是尝试并限制只显示返回的值与正确的字符串长度,如下所示:
foreach($block1 AS $b1){ foreach($block2 AS $b2){ foreach($block3 AS $b3){ foreach($block4 AS $b4){ foreach($block5 AS $b5){ foreach($block6 AS $b6){ foreach($block7 AS $b7){ foreach($block8 AS $b8){ if (strlen($b1.$b2.$b3.$b4.$b5.$b6.$b7.$b8) == 16) { echo $b1.$b2.$b3.$b4.$b5.$b6.$b7.$b8.'<br/>'; } } } } } } } } }
但是,执行时间太长,无法计算.我想知道是否有人知道更简单的方法吗?
$len = 16: // array for remaining characters per level $r = array($len); // array of level parts $p = array(); foreach ($block1 AS &$b1) { // skip if already too long if (($r[0] - strlen($b1)) <= 0) conTinue; $r[1] = $r[0] - strlen($b1); foreach ($block2 AS &$b2) { if (($r[1] - strlen($b2)) <= 0) conTinue; $r[2] = $r[1] - strlen($b2); foreach ($block3 AS $b3) { // … foreach ($block8 AS &$b8) { $r[8] = $r[7] - strlen($b8); if ($r[8] == 0) { echo implode('',$p).'<br/>'; } } } } }
以上是大佬教程为你收集整理的php – 具有超过3700万种可能性的多个foreach全部内容,希望文章能够帮你解决php – 具有超过3700万种可能性的多个foreach所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。