Иногда нужно выстроить представление списка таблицей с сохранением сортировки.
Функция принимает 3 парамтра:
1. Массив элементов списка, которые будут выстроены в ячейках таблицы.
2. Количество столбцов таблицы. Количество строк будет рассчитано функцией.
3. Направление сортировки. По умолчанию разложит по строкам. Если задать параметр отличный от нуля, разложит по столбцам.
function build_table($inp=array(), $colz, $dir=0){
$itemz=array();
foreach($inp as $v)$itemz[] = $v;
$tdz = ceil(count($inp)/$colz)*$colz;
$rowz = $tdz/$colz;
if($dir)
{
$itemz_tmp = array();
for($i=0;$i<$tdz;$i++)
$itemz_tmp[($i%$rowz)][floor($i/$rowz)] = isset($itemz[$i]) ? $itemz[$i] : ' ';
$itemz = array();
foreach($itemz_tmp as $v)
$itemz = array_merge($itemz,$v);
}
$html = PHP_EOL.'<tr>'.PHP_EOL;
for($i=1;$i<=$tdz;$i++)
{
$r = ($i%$colz or $i==($rowz*$colz)) ? '' : '</tr>'.PHP_EOL.'<tr>'.PHP_EOL;
$td = isset($itemz[($i-1)]) ? $itemz[($i-1)] : ' ';
$html .= '<td>'.$td.'</td>'.PHP_EOL.$r;
}
$html .= '</tr>'.PHP_EOL;
return $html;
}
_____________
Бесплатному сыру в дырки не заглядывают...