假设我有一个N个元素的数组。我想尽可能多地将它分成N个子数组来制作N列。
你知道我怎么能用PHP做到这一点吗? 我试过了array_chunk,但这并不是我想要的。
这是两个例子:
$array = range(1, 10);
$number_of_split = 3;
阵列应分为3个子阵列,每个子阵列包含4个元素,第一个子阵列和3个元素用于其他两个子阵列。
$array = range(1, 27);
$number_of_split = 5;
对于两个第一个子数组,数组应分为5个6个元素的子数组,其他三个子数组应分为5个元素。
答案 0 :(得分:1)
从php.net尝试此功能。
function partition($list, $p) {
$listlen = count($list);
$partlen = floor($listlen / $p);
$partrem = $listlen % $p;
$partition = array();
$mark = 0;
for($px = 0; $px < $p; $px ++) {
$incr = ($px < $partrem) ? $partlen + 1 : $partlen;
$partition[$px] = array_slice($list, $mark, $incr);
$mark += $incr;
}
return $partition;
}
像这样使用:
$array = array();
$array = range(1, 10);
$number_of_split = 3;
$chunks = partition($array, $number_of_split);
print_r($chunks);