- array_slice: documentation ( source)
- floor: documentation ( source)
- implode: documentation ( source)
- max: documentation ( source)
- range: documentation ( source)
- sqrt: documentation ( source)
<?php
class Gridizer
{
/**
* Get a squar-ish grid
*/
public function getGrid($array)
{
$grid_size = floor(sqrt(count($array)));
$table = $this->chunk($table_cells, max($grid_size, 1));
foreach ($table as $row) {
echo implode(' | ', $row) . PHP_EOL;
}
}
/**
* Create a Generator to chunk an incoming array into `$chunk_size` sized chunks
*/
public function chunk(array $array, $chunk_size)
{
$index = 0;
while ($index < count($array)) {
yield array_slice($array, $index, $chunk_size, true);
$index += $chunk_size;
}
}
}
$foo = new Gridizer;
echo $foo->getGrid(range(1, 100));