我有一个数组,我想将它分成 4 个其他数组,因为我想在四列上显示第一个数组的内容。
我已经尝试了上面的代码,但我得到的是包含 4 个项目的 N 列。
$groups = array();
for ($i = 0; $i < count($menu); $i += 4) $groups[] = array_slice($menu, $i, 4);
是否可以对其进行修改以获得准确的 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个数组,而不是四个数组:
$groups = array_chunk($menu,(int)ceil(count($menu)/4));
你可以试试
// 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));
}