/**
* Divide an array into a desired number of split lists
* @link http://www.php.net/manual/en/function.array-chunk.php#75022
* @param array $list The Array
* @param int $size Partition Size
* @return array The partitioned array
*/
function columnsPartition ( array $list, $size ) {
$listLen = count ( $list );
if ( !$listLen || $size < 1 ) {
return [];
}
$partLen = floor ( $listLen / $size );
$partRem = $listLen % $size;
$partition = [];
$mark = 0;
for ( $px = 0; $px < $size; $px++ ) {
$increment = ( $px < $partRem ) ? $partLen + 1 : $partLen;
$partition[ $px ] = array_slice ( $list, $mark, $increment );
$mark += $increment;
}
return $partition;
}
/************
* EXAMPLE
***********/
var_dump ( columnsPartition(range('A','I'), 3) );
/***********
* OUTPUT
**********/
array (size=3)
0 =>
array (size=3)
0 => string 'A' (length=1)
1 => string 'B' (length=1)
2 => string 'C' (length=1)
1 =>
array (size=3)
0 => string 'D' (length=1)
1 => string 'E' (length=1)
2 => string 'F' (length=1)
2 =>
array (size=3)
0 => string 'G' (length=1)
1 => string 'H' (length=1)
2 => string 'I' (length=1)
Чтобы увидеть комментарии, нужно быть участником сообщества
Регистрация