PHP循环每次需要增加多个。当条件满足时,如何退出循环?

时间:2012-07-15 14:12:32

标签: php

我想通过将一个条目放在另一个条目下面来组合三个php数组,如下所示:

while ($i <= $no)
{
        $results[$i] = $blah[$i];
        $i++;
        $results[$i] = $thing[$i];
        $i++;
        $results[$i] = $something[$i];
        $i++;
}

然而问题是$ $可以超过,因为我需要在每个循环中增加$ i三次。

最终结果:

array (size=12)
  1 => 
    array (size=4) (from $blah)
  2 => 
    array (size=4) (from $thing)
  3 => 
    array (size=4) (from $something)
  4 => 
    array (size=4) (from $blah)

......这需要继续,直到达到$ no的大小

3 个答案:

答案 0 :(得分:2)

简单的,你不能做这样的事情吗?

   while ($i <= $no)
        {
                $results[$i] = $blah[$i];
                $i++;
                if($i > $no){ break;}
                $results[$i] = $thing[$i];
                $i++;
                if($i > $no){ break;}
                $results[$i] = $something[$i];
                $i++;
        }

答案 1 :(得分:1)

您正在寻找break statement。您可能还需要append到结果数组,而不是指定特定索引:

$results = array();
while ($i <= $no) {
    $results[$i] = $blah[$i];
    $i++;
    if ($i > $no) break;
    $results[] = $thing[$i]; // just append
    $i++;
    if ($i > $no) break;
    array_push($results, $something[$i]); // append with array_push
    $i++;
}

答案 2 :(得分:-1)

为什么不简化:

$results = array_push($blah, $thing, $something);
// appends the arrays together

$results = array_merge($blah, $thing, $something);
// merges arrays together