如何有条件地运行循环,省略某些值,PHP

时间:2016-03-07 18:07:09

标签: php mysql for-loop

我想运行此循环并将值放在for循环

中定义的新变量中

stage = stage1,stage3,stagexx

for ($i=0;$i<=count($name);$i++) {
$current[$i]  = $count[$i];
$stage = array_replace($stage, $stage1);
} 

我必须为我的脚本运行几个for循环。

上面的循环
我想先运行它所有计数($ name),如果满足某些条件。

示例:


我想
省略$ name [3]并再次运行循环 要么
省略$ name [6]并再次运行循环。将新值放入

$current[$i]  = $count[$i];
$stage = array_replace($stage, $stage1); 

结果值:

在结束时,我希望根据省略的值获取下面提到的变量的新值。当我省略任何值时,变量将改变它们的值。

$current[$i]  = $count[$i];
$stage = array_replace($stage, $stage1); 

**omit $name[3]** 
  $current[$i]  = $count[$i];
    $stage = array_replace($stage, $stage4);

**omit $name[xx]** 
  $current[$i]  = $count[$i];
    $stage = array_replace($stage, $stagexx);  

编辑:

如果我省略了值,那么for循环的新面孔会是什么。

例如:

if($ i&lt;&gt; 3) 我想再次运行循环,并省略value = 3

for ($i=0;$i<=count($name);$i++) {
    $current[$i]  = $count[$i];
    $stage = array_replace($stage, $stage1);
    } 

我想知道如何用省略的值再次写入循环?

3 个答案:

答案 0 :(得分:0)

为此:

**omit $name[3]** 
  $current[$i]  = $count[$i];

只是将其排除

**omit $name[3]** 
  if ($i<>3)  $current[$i]  = $count[$i];

没有理由不起作用。

编辑:您不修改FOR循环。你在里面设置一个条件:

for ($i=0;$i<=count($name);$i++) {
    if ($i<>3)  $current[$i]  = $count[$i];  //only run this if it's not=3
    //$current[$i]  = $count[$i];  
    $stage = array_replace($stage, $stage1);
    } 

答案 1 :(得分:0)

如果您想在某些情况下跳过循环内的执行并仍然继续循环,则应使用continue语句。例如:

<?php
    for ($i = 0; $i < 5; ++$i) {
        if ($i == 2)
            continue;
        print "$i\n";
    }
?>

答案 2 :(得分:0)

我发现这个问题有点难以理解。您是否能够将此代码块放在函数中并对函数进行参数化,以便您(例如)省略索引列表?

function yourLoopFunction($namesArr, $omitIndicesArr){
    $current = array();

    ... // where stage, stage1 come from

    for ($i=0; $i < count($name); $i++) {
        if (!in_array($i, $omitIndicesArr){
            $current[$i]  = $count[$i];
            $stage = array_replace($stage, $stage1);
        }
    }

    return $current;
}