Если вы хотите, чтобы это было именно так, как вы хотите в своем примере, тогда вам нужно будет прочитать всю таблицу в память, вычислить элемент средней точки и затем построить свою таблицу из этой таблицы, используя базовую точку, смещение иубедитесь, что вы не повторили ничего, что включает в себя всю нагрузку вычислений.
Обходным путем будет создание двух отдельных таблиц (каждая из которых содержит один столбец), а затем их в одной таблицес двумя столбцами:
<?php
$list=array('a','b','c','d','e','f');
$midpoint=floor(count($list)/2);
$tableHeader='<table width="100%">';
$tableFooter='</table>';
$leftTable=$tableHeader;
$rightTable=$tableHeader;
for ($c=0; $c<$midpoint; $c++)
{
$leftTable.='<tr><td width="100%">'.$list[$c].'</td></tr>';
}
$leftTable.=$tableFooter;
for ($c=$midpoint; $c<count($list); $c++)
{
$rightTable.='<tr><td width="100%">'.$list[$c].'</td></tr>';
}
$rightTable.=$tableFooter;
$mainTable='<table><tr><td width="50%">'.$leftTable.'</td><td width="50%">'.$rightTable.'</td></tr></table>';
echo $mainTable;
?>
Или что-то в этом роде.Я не тестировал этот код, но он был бы довольно близок (возможно, придется скорректировать значения в разделах "for"