Для получения полного доступа
зарегистрируйтесь.
RSS

Все сниппеты с тэгом «array_chunk»



Gravatar image
higimo
  • Репутация: 2
  • Сниппеты: 0
  • Ревизии: 1
<?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]]
Gravatar image
Ambalus
  • Репутация: 3
  • Сниппеты: 2
  • Ревизии: 0
<?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]]