PHP函数在N子数组中划分N个元素的数组

时间:2014-07-08 13:58:10

标签: php arrays

假设我有一个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个元素。

1 个答案:

答案 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);