将数组切成4个其他数组

时间:2012-10-13 19:39:41

标签: php arrays slice

我有一个数组,我想在其他4个数组中切片,因为我想在四列上显示第一个数组的内容。

我已尝试过上面的代码,但我得到的是包含4个项目的N列。

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

是否可以对其进行修改以获得恰好4列并分配值以使它们适合?

2 个答案:

答案 0 :(得分:4)

像迈克尔·伯科斯基建议的那样:

$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));

答案 1 :(得分: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));
}