Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
foreach循环中的PHP计算、断点和重置值_Php_Loops_Foreach_Reset - Fatal编程技术网

foreach循环中的PHP计算、断点和重置值

foreach循环中的PHP计算、断点和重置值,php,loops,foreach,reset,Php,Loops,Foreach,Reset,如何计算foreach循环中的(sum)+值 我正在开发一个cricket应用程序,在这个应用程序中,我必须每6次计算一次循环,然后计算特定的值,然后返回总数 我有一个不精确的代码,但像这样的东西 有两个价值观: Balls$Balls['1'];阵列状1,2,3,4,5和最多300-1000个球 运行$balls['6'];类似数组的2,3,1,5随机数可以是任意数 值来自mysql表列balls和runs 但是,对于第一个$countball==6,类似这样的方法可以很好地工作。但是在这之后

如何计算foreach循环中的(sum)+值

我正在开发一个cricket应用程序,在这个应用程序中,我必须每6次计算一次循环,然后计算特定的值,然后返回总数

我有一个不精确的代码,但像这样的东西

有两个价值观:

  • Balls$Balls['1'];阵列状1,2,3,4,5和最多300-1000个球
  • 运行$balls['6'];类似数组的2,3,1,5随机数可以是任意数
  • 值来自mysql表列ballsruns

  • 但是,对于第一个$countball==6,类似这样的方法可以很好地工作。但是在这之后,它不会显示确切的值

    您忘了重置$countball

    您可以将if部件更改为:

    if($countball == 6)
    { 
        echo $runs;
        $countball = 0; 
    }
    

    也许这就是你需要的:

    $runs = 0;
    foreach( $balls as $ball ){
        $runs += $ball['runs'];
    }
    echo $runs;
    

    在上面@Barmar的帮助下,我得到了如下所示的期望输出

          $runs = 0;
            $countball=0;
            foreach( $balls as $ball ){
                $countball++;
                $runs += $ball['runs'];
                if($countball == 6){
    //  reset runs from current loop runs for next, if i reset $runs = 0
    //  for some reason it does not (SUM) + this loops $ball['runs'] with last 5;
                $runs = $ball['runs']; 
                $countball=0;
                }// end if $countball == 6
            }// end foreach
                echo $runs;
    

    对于我们这些不懂板球的人,你能展示一下示例输入数据和所需的输出吗?
    $runs=$ball+$ball
    是相同的a
    $runs=2*$ball
    。这不是一个正在运行的总数,您每次通过循环都会重置它。对不起,我是新来的,我编辑了问题以添加更多描述,但代码格式现在很混乱。是的,我想我正在重置它,那么在if($coundball==6)echo$运行并重置后,如何重置下一个循环的值并重置下一个6个循环?感谢@Barmar更正问题格式是的,但这不是问题,问题是$运行计数!也设置
    $runs=0
    。如果不起作用,请告诉我如何简单地将foreach值求和,例如,将当前循环中的值与下一个循环中的值求和?您仍然没有清楚地解释所需的结果。我只想将当前$ball['runs']与下一个循环$ball['runs']求和;示例结果是:1。詹姆斯2球3分2秒。亚当一球四跑三。james 1 ball 5次运行最终结果我需要的是foreach循环总共12次运行,只有我可以从另一个查询到mysql。
          $runs = 0;
            $countball=0;
            foreach( $balls as $ball ){
                $countball++;
                $runs += $ball['runs'];
                if($countball == 6){
    //  reset runs from current loop runs for next, if i reset $runs = 0
    //  for some reason it does not (SUM) + this loops $ball['runs'] with last 5;
                $runs = $ball['runs']; 
                $countball=0;
                }// end if $countball == 6
            }// end foreach
                echo $runs;