1

最初の配列の内容を 4 つの列に表示したいので、他の 4 つの配列にスライスしたい配列があります。

上記のコードを試してみましたが、得られるのは 4 項目の N 列です。

$groups = array();
for ($i = 0; $i < count($menu); $i += 4) $groups[] = array_slice($menu, $i, 4);

これを変更して、正確に 4 つの列を取得し、値を分散して収まるようにすることはできますか?

4

2 に答える 2

4

Michael Berkowskiが提案したように:

$groups = array_chunk($menu,4);

必要なものを与える必要があります。あなたが「肉体労働」にもっと興味があるなら:

$groups = array();
while($groups[] = array_splice($menu,0,4))
{//no need for any code here ^^ chunks the array just fine
    printf('This loop will run another %d times<br/>',(int)ceil(count($menu)/4));
}

アップデート:

私はこれが少し間違っているようです... 4つの配列ではなく、4つの配列にチャンクしたい:

$groups = array_chunk($menu,(int)ceil(count($menu)/4));
于 2012-10-13T19:59:10.793 に答える
1

あなたが試すことができます

// Some Random array
$array = range(1, 20);

// Split it 4 Chuncks
$array = array_chunk($array, 4);

// Slice The first 4 Chunks
$array = array_slice($array, 0, 4);

// Output Result
foreach ( $array as $set ) {
    printf("<li>%s</li>", implode(",", $set));
}
于 2012-10-13T20:06:02.003 に答える