Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 因为循环的行为不符合预期,我做错了什么? $emails=array()//这是一个4600封电子邮件的数组,我正在为每1000封电子邮件生成一个批处理范围 $batch=ceil(计数($email)/1000);//我得到了多少批次,我需要得到 $lowe=0//较低的初始化范围 $upper=$lowe+999//初始化的上限范围 对于($i=0;$ilowe,'upper'=>upper]; } 报税表($ss);//响应是[{“较低”:0,“较高”:999},{“较低”:1000,“较高”:1999},{“较低”:2000,**“较高”:3999},{“较低”:4000,“较高”:7999},{“较低”:8000,“较高”:15999}]** //然而,我期望[{“较低”:0,“较高”:999},{“较低”:1000,“较高”:1999},{“较低”:2000,“较高”:2999},{“较低”:3000,“较高”:3999},{“较低”:4000,“较高”:4999}]_Php_Loops_For Loop - Fatal编程技术网

Php 因为循环的行为不符合预期,我做错了什么? $emails=array()//这是一个4600封电子邮件的数组,我正在为每1000封电子邮件生成一个批处理范围 $batch=ceil(计数($email)/1000);//我得到了多少批次,我需要得到 $lowe=0//较低的初始化范围 $upper=$lowe+999//初始化的上限范围 对于($i=0;$ilowe,'upper'=>upper]; } 报税表($ss);//响应是[{“较低”:0,“较高”:999},{“较低”:1000,“较高”:1999},{“较低”:2000,**“较高”:3999},{“较低”:4000,“较高”:7999},{“较低”:8000,“较高”:15999}]** //然而,我期望[{“较低”:0,“较高”:999},{“较低”:1000,“较高”:1999},{“较低”:2000,“较高”:2999},{“较低”:3000,“较高”:3999},{“较低”:4000,“较高”:4999}]

Php 因为循环的行为不符合预期,我做错了什么? $emails=array()//这是一个4600封电子邮件的数组,我正在为每1000封电子邮件生成一个批处理范围 $batch=ceil(计数($email)/1000);//我得到了多少批次,我需要得到 $lowe=0//较低的初始化范围 $upper=$lowe+999//初始化的上限范围 对于($i=0;$ilowe,'upper'=>upper]; } 报税表($ss);//响应是[{“较低”:0,“较高”:999},{“较低”:1000,“较高”:1999},{“较低”:2000,**“较高”:3999},{“较低”:4000,“较高”:7999},{“较低”:8000,“较高”:15999}]** //然而,我期望[{“较低”:0,“较高”:999},{“较低”:1000,“较高”:1999},{“较低”:2000,“较高”:2999},{“较低”:3000,“较高”:3999},{“较低”:4000,“较高”:4999}],php,loops,for-loop,Php,Loops,For Loop,将循环中$upper的赋值更改为常量值 $emails =array() // This is an array of 4600 emails of which i am generating a batch range for each 1000 emails $batch= ceil(count($emails)/1000); // i am getting how many batches i need to get $lowe=0; //lower range for initi

将循环中$upper的赋值更改为常量值

$emails =array() // This is an array of 4600 emails of which i am generating a batch range for each 1000 emails 

$batch= ceil(count($emails)/1000);  // i am getting how many batches i need to get

$lowe=0; //lower range for initialization

$upper=$lowe+999; //upper range for initialization


for ($i=0; $i < $batch; $i++) { 
            if ($i!=0) {
           $lowe=$upper+1;
           $upper=  $upper+$lowe;
     }

$ss[]=['lower'=>$lowe,'upper'=>$upper];

    }

return ($ss);  // response is [{"lower":0,"upper":999},{"lower":1000,"upper":1999},{"lower":2000,**"upper":3999},{"lower":4000,"upper":7999},{"lower":8000,"upper":15999}]**

// yet i expect [{"lower":0,"upper":999},{"lower":1000,"upper":1999},{"lower":2000,"upper":2999},{"lower":3000,"upper":3999},{"lower":4000,"upper":4999}]
for($i=0;$i<$batch;$i++){
如果($i!=0){
$lowe=$upper+1;
$upper+=999;
}
$ss[]=['lower'=>lowe,'upper'=>upper];
}

将循环中$upper的赋值更改为常量值

$emails =array() // This is an array of 4600 emails of which i am generating a batch range for each 1000 emails 

$batch= ceil(count($emails)/1000);  // i am getting how many batches i need to get

$lowe=0; //lower range for initialization

$upper=$lowe+999; //upper range for initialization


for ($i=0; $i < $batch; $i++) { 
            if ($i!=0) {
           $lowe=$upper+1;
           $upper=  $upper+$lowe;
     }

$ss[]=['lower'=>$lowe,'upper'=>$upper];

    }

return ($ss);  // response is [{"lower":0,"upper":999},{"lower":1000,"upper":1999},{"lower":2000,**"upper":3999},{"lower":4000,"upper":7999},{"lower":8000,"upper":15999}]**

// yet i expect [{"lower":0,"upper":999},{"lower":1000,"upper":1999},{"lower":2000,"upper":2999},{"lower":3000,"upper":3999},{"lower":4000,"upper":4999}]
for($i=0;$i<$batch;$i++){
如果($i!=0){
$lowe=$upper+1;
$upper+=999;
}
$ss[]=['lower'=>lowe,'upper'=>upper];
}

要澄清你做错了什么:

在循环中,
$lowe
的值不断增加-因此当您执行
$upper=$upper+$lowe
,旧值
$upper
与新值之间的差值也会增大


您的目标是将
$upper
值不断增加1000,这就是为什么您必须替换
$upper=$upper+$lowe$upper+=1000

进行代码>以澄清您的错误:

在循环中,
$lowe
的值不断增加-因此当您执行
$upper=$upper+$lowe
,旧值
$upper
与新值之间的差值也会增大


您的目标是将
$upper
值不断增加1000,这就是为什么您必须替换
$upper=$upper+$lowe
如果
$upper+=1000

它实际上应该是
$upper+=1000,而不是
$upper+=999谢谢。节省了我调试的时间。它实际上应该是
$upper+=1000,而不是
$upper+=999谢谢。节省了我几个小时的调试时间。是的,这解决了问题。谢谢你。我还发现替换$upper=$upper+$lowe;带$upper=$lowe+999;也解决了问题。是的,这解决了问题。谢谢你。我还发现替换$upper=$upper+$lowe;带$upper=$lowe+999;这也解决了问题。