php填充锯齿状阵列3列3行

时间:2018-04-05 20:18:40

标签: php for-loop foreach jagged-arrays

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

$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',' ',' ']
];

我该怎么做?

2 个答案:

答案 0 :(得分:3)

array_chunk将主要完成这项工作,

$kb = array_chunk($nums, 3);

但是如果输入数组没有均匀分配,它就不会用空格填充最终的子数组。
即,array_chunk as-is将产生:

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

而不是您想要的输出。

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

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

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

答案 1 :(得分:2)

您需要使用array_chunk()方法

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

$nums = array_chunk($nums, 3);