$array = [
'127.0.0.1',
'127.0.0.2',
'127.0.0.3',
'127.0.0.4',
'127.0.0.5',
'127.0.0.6',
'127.0.0.7',
'127.0.0.8',
'127.0.0.9',
];
$result = []; // результат
$len = 4; // длинна первого массива (менять для экспериментов)
$c = ceil(count($array) / $len) - 1; // количество итераций
$result[] = array_slice($array, 0, $len); // первый срез
$offset = $len - 1; // смещение для первой итерации
for (++$len, $j = 0, $i = 0; $i < $c; $i++, $offset += $len - 1, $j += $len) {
$result[] = array_slice($array, $offset, $len);
}
echo '<pre>' . print_r($result, true) . '</pre>';
function sizeofdir($dir) {
$dir = realpath($dir);
$fileSPLObjects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir), RecursiveIteratorIterator::CHILD_FIRST);
$dirs = 0;
$files = 0;
$dirsize = 0;
foreach( $fileSPLObjects as $fullFileName => $fileSPLObject ) {
if ($fileSPLObject->isDir()) {
$dirs++;
} elseif ($fileSPLObject->isFile()) {
$files++;
$dirsize += $fileSPLObject->getSize();
}
}
return $dirs . ' - Dir(s) , Total: ' . $files . ' file(s) , ' . file_size($dirsize);
}
function file_size($size)
{
$filesizename = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
return $size ? round($size/pow(1024, ($i = floor(log($size, 1024)))), 2) . $filesizename[$i] : '0 Bytes';
}
$count = $json['pages'];
$dept = [];
for($d = 0; $d < $count; $d++) {
$dept[] = count($json['pages][$d]['attribute'];
}
$max = max($dept);
echo '<table><tr>';
for ($i = 0; $i < $count; $i++) {
echo '<th>' . $json['pages][$i]['name'] . '</th>';
} // заголовок
echo '</tr>';
while(++$x < $max) {
echo '<tr>';
for($k = 0; $k < $count; $k++) {
echo '<td>' . ($json['pages'][$k]['attribute][$x] ?? '') . '</td>';
}
echo '</tr>';
}
echo '</table>';