<?php
/**
* Разбивает массив на чанки размером [n,2n-1]
*/
function array_chunk_min($list, $minSize){
$listCount = count($list);
$chunks = array_chunk($list, $minSize);
$chunksCount = count($chunks);
if ($listCount > $minSize && count($chunks[$chunksCount - 1]) % $minSize > 0) {
$chunks[$chunksCount - 2] = array_merge($chunks[$chunksCount - 2], $chunks[$chunksCount - 1]);
array_pop($chunks);
}
return $chunks;
}
print_r(array_chunk_min(range(1,45),20)); // [[1...20],[21...45]]
print_r(array_chunk_min(range(1,19),20)); // [[1...19]]
<?php
/**
* Разбивает массив на чанки размером [n,2n-1]
*/
function array_chunk_min($list,$minSize){
$cnt = count($list);
if($cnt <= $minSize){
return array($list);
}
$lastChunkSize = $cnt%$minSize;
if($lastChunkSize > 0){
$chunks = array_chunk(array_slice($list, 0, $cnt-$lastChunkSize),$minSize);
$lastChunk = array_slice($list, $cnt-$lastChunkSize,$minSize);
$cntChunks = count($chunks);
$chunks[$cntChunks-1] = array_merge($chunks[$cntChunks-1],$lastChunk);
}else{
$chunks = array_chunk($list, $minSize);
}
return $chunks;
}
print_r(array_chunk_min(range(1,45),20)); // [[1...20],[21...45]]
print_r(array_chunk_min(range(1,19),20)); // [[1...19]]