php 填充锯齿状数组 3 列 3 行

php filling jagged array 3 columns 3 rows

我有这个数组(我的数据库结果)

$nums = array("one","two","three",....,"nine");

$nums = array("one","two","three","four");

我想用这些值填充锯齿状数组。 我的锯齿状数组应该是这样的:

$kb = [
   ['one','two','three'],
   ['four','five','six'],
   ['seven','eight','nine']
];

$kb = [
   ['one','two','three'],
   ['four',' ',' ']
];

我该怎么做?

你需要使用array_chunk()方法

$nums = array("one","two","three","four");

$nums = array_chunk($nums, 3);

array_chunk 将主要完成工作,

$kb = array_chunk($nums, 3);

但如果输入数组没有均匀划分,它不会用空白填充最后的 sub-array。
即,array_chunk as-is 将产生:

$kb = [
   ['one','two','three'],
   ['four']
];

而不是你想要的输出。

您可以将最后一项与空白数组合并来解决这个问题。

$kb[count($kb)-1] = end($kb) + ['','',''];

(可以无条件执行;如果输入数组 确实 均分,它不会改变任何东西。)