1

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

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

然而,这个问题是 $no 可以被超过,因为我需要在每个循环中增加 $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 的大小

4

3 回答 3

2

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

   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++;
        }
于 2012-07-15T14:16:02.660 回答
1

您正在寻找break声明。您可能还想追加到结果数组,而不是指定特定的索引:

$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++;
}
于 2012-07-15T14:15:16.957 回答
-1

为什么不简化:

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

或者

$results = array_merge($blah, $thing, $something);
// merges arrays together
于 2012-07-15T14:30:37.317 回答