use Webmozart\Assert\Assert;
/**
* @param mixed[] $array
* @param int $chunksCount
*
* @return mixed[][]
* @throws \InvalidArgumentException
*/
function circularSplit(array $array, $chunksCount)
{
Assert::integerish($chunksCount);
Assert::greaterThen($chunksCount, 0);
$arrayLength = count($array);
if (1 === $chunksCount || !$arrayLength) {
return [$array];
}
$chunks = [];
$loopIndex = 0;
foreach ($array as $key => $value) {
$chunkIndex = $loopIndex % $arrayLength;
$chunks[$chunkIndex][$key] = $value;
$loopIndex++;
}
return $chunks;
}
$indexedArray = array_values($array);
for ($i = 0; $i < count($indexedArray); $i += 3) {
$indexedArray[$i];
$indexedArray[$i + 1];
$indexedArray[$i + 2];
}