You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP中while循环生成递增数值数组时返回重复值的问题求助

问题分析与解决方案

我来帮你搞定这个循环生成递增数组的问题!你现在遇到的核心问题是:每次循环都在重新计算固定基础值的总和,完全没让数值跟着循环次数涨起来——你的summe函数看起来是做加法,但每次都传相同的参数,结果自然一模一样。

修正后的代码

我们把初始值提前存到变量里,每次循环结束后给这些变量加上对应的增量,就能得到你想要的递增效果:

// 初始化初始值(对应你第一次输出的结果)
$currentLow = 35501 + 500;
$currentHigh = 36000 + 500;
$currentAmount = 3575 + 50;

$i = 1; 
while( $i <= 65 ) { 
    echo "array(<br>"; 
    echo "'low' => '" . $currentLow . "',<br>"; 
    echo "'high' => '" . $currentHigh . "',<br>"; 
    echo "'amount' => '" . $currentAmount . "',<br>"; 
    echo '\'city\' => $city<br>'; 
    echo "),<br>"; 

    // 每次循环后给数值加对应增量
    $currentLow += 500;
    $currentHigh += 500;
    $currentAmount += 50;

    $i++; 
}

为什么原来的代码不行?

你原来的写法里,$startVal = $this->summe(35501, 500); 每次循环都会重新计算35501+500,得到的永远是36001,完全没利用循环的迭代来让数值增长。而修正后的方案是把初始值存在变量里,每次循环结束后给变量加增量,下一次循环就能用上一次的结果继续计算。

额外小优化

如果你的summe函数只是做简单的加法,其实可以直接用+运算符代替,代码会更直观:

$currentLow = 35501 + 500; // 等同于$this->summe(35501, 500)

内容的提问来源于stack exchange,提问作者Code GuruDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 22:12:35