1

次のように、1つのエントリを取得して他のエントリの下に配置することにより、3つのphp配列を結合したいと思います。

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

ただし、これに関する問題は、各ループで$ iを3回インクリメントする必要があるため、$noを超える可能性があることです。

最終結果:

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

簡単な考え、あなたはこのようなことをすることはできませんか?

   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 に答える