Создать таблицу с повторяющейся строкой заголовка в PHP - PullRequest
0 голосов
/ 01 мая 2018

Мне нужно сгенерировать эту таблицу в PHP.

Итак, это моя попытка:

$days = 7; 
$maxid = 7;
$startid = 1;

$html = "<table id='table1'>\n";
for ($i = 1;$i<=ceil($maxid/$days);$i++) {

    $html .= "<tr>\n";
    for ($j=1;$j<=$days;$j++)
        if ($startid <= $maxid)
            $html .= "  <td class='mark'>DAY ".$startid++."</td>\n";
        else 
            $html .= "  <td> </td>\n";

    $html .= "</tr>\n<tr>\n";
    for ($j=1;$j<=$days;$j++)
        $html .= "<td>Content</td>\n";

    $html .= "</tr>\n";
}

$html .= "</table>\n";

Проблема в том, что я не умею вставлять MO TU WE TH FR SA SU, а заголовок не повторяется каждые две строки.

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете присвоить MO, TU и т. Д. Массиву и выполнить итерацию по нему, чтобы получить значения для повторяющегося заголовка. Оттуда вы можете использовать Оператор по модулю , чтобы определить, когда были выведены две строки, и повторить ваш заголовок:

$days = 7; 
$maxid = 7;
$startid = 1;

$dayLabels = array('MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU');

$html = "<table id='table1'>\n";
for ($i = 1;$i<=ceil($maxid/$days);$i++) {

    $html .= "<tr>\n";
    if($i % 2 == 1) {
        foreach($dayLabels as $label) {
            $html .= " <th>$label</th>";
        }
        $html .= "</tr><tr>";
    }
    for ($j=1;$j<=$days;$j++)
        if ($startid <= $maxid)
            $html .= "  <td class='mark'>DAY ".$startid++."</td>\n";
        else 
            $html .= "  <td> </td>\n";

    $html .= "</tr>\n<tr>\n";
    for ($j=1;$j<=$days;$j++)
        $html .= "<td>Content</td>\n";

    $html .= "</tr>\n";
}

$html .= "</table>\n";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...