PHP动态行循环打印实现指定格式输出求助(新手)
解决PHP循环打印的问题
嘿,刚接触PHP遇到循环逻辑的问题太正常啦,我帮你梳理一下~
首先先拆解你想要的输出规律:15151 24242 33333 42424 51515,能发现几个核心特点:
- 一共5组字符串,每组5个字符
- 第n组(n从1到5)的模式是:n、(6-n)、n、(6-n)、n → 比如第1组是1、5、1、5、1,第2组是2、4、2、4、2,以此类推
你的原代码里内层循环的条件$j++-6+1是语法错误,而且变量$k和$sum的逻辑也没贴合这个规律,所以输出不对。下面是修正后的代码,我会逐行解释:
$angka = 5; echo "Hasil :<br/>"; // 外层循环控制每一组的核心数字(1到5) for ($i = 1; $i <= $angka; $i++) { $currentNum = $i; $pairNum = 6 - $i; // 计算和当前数字配对的数:6-1=5,6-2=4...正好符合交替规律 // 内层循环生成每组的5个字符 for ($j = 1; $j <= 5; $j++) { // 奇数位置输出当前数字,偶数位置输出配对数字 echo $j % 2 === 1 ? $currentNum : $pairNum; } // 每组之间加空格分隔 echo " "; }
代码逻辑说明:
- 外层循环的
$i从1到5,对应每组的第一个数字,比如第1组是1,第5组是5 $pairNum = 6 - $i是关键:这样能得到和$i互补的数字,正好对应输出里交替的第二个数- 内层循环跑5次,通过
$j % 2判断当前是奇数位还是偶数位,交替输出$currentNum和$pairNum,就能生成15151、24242这样的字符串 - 每组结束后加个空格,让结果和你想要的格式完全匹配
运行这段代码后,就能得到你期望的输出啦~
内容的提问来源于stack exchange,提问作者Zakario Lesrahmanto
相关产品推荐
相关产品推荐

