2017-02-16 9 views
1

Ich habe eine Tabelle, die wie folgt aussieht:HTML - Formatierung eine vertikale Tabelle

HEADER1: data1 
HEADER2: data2 
HEADER3: data3 
HEADER4: data4 
HEADER5: data5 
HEADER6: data6 
HEADER7: data7 
HEADER8: data8 

und so weiter. Ich möchte eine gewisse „Schwelle“ setzen, sagen 4, wonach die Daten zu suchen, wie dieser Schalter (so dass der Benutzer nicht zu viel nach unten scrollen muss):

HEADER1: data1  HEADER5: data5 
HEADER2: data2  HEADER6: data6 
HEADER3: data3  HEADER7: data7 
HEADER4: data4  HEADER8: data8 

Wie kann ich tun so etwas auf die einfachste Weise?

Hier wird die aktuelle PHP-Code ist ich diese Tabelle zu erzeugen, verwenden:

foreach($row as $key=>$value) { 
    echo '<tr>'; 
    echo '<th>', $headerindeces[$i], "</th>"; 
    echo '<td>',$value,'</td>'; 
    echo '</tr>'; 
    $i++; 
} 

Antwort

1

Ein sehr einfacher Ansatz wäre, einen anderen Tisch jedes Mal zu bauen, wenn der Schwellenwert erreicht ist (vorausgesetzt, es ist ok für Sie hart codieren der Grenzbereich). Sie können das erreichen mit dem modulus division:

$threshold = 4; 
$i = 0; 
foreach ($row as $key => $value) { 
    if (($i+1) % $threshold == 0) { 
     echo '</table><table>'; 
    } 
    echo '<tr>'; 
    echo '<th>', $headerindeces[$i], "</th>"; 
    echo '<td>', $value, '</td>'; 
    echo '</tr>'; 
    $i++; 
} 

Und danach, nur CSS nebeneinander die beiden Tabellen angezeigt werden soll.

+0

typo: echo ''; zwei schließende Tag der Tabelle – JYoThI

+0

Danke, das funktioniert. Nur eine weitere Korrektur: sollte die if-Bedingung in (($ i + 1)% $ threshold == 0 || $ i == 0) ändern, andernfalls wird die erste Tabelle erst erstellt, wenn der Schwellenwert erreicht ist. Alternativ einfach ($ i% $ threshold == 0). – Bluejay

+1

Ok ich nahm an, dass die Initialtabelle bereits im Code zuvor ausgegeben wurde. In diesem Fall '|| $ i == 0 würde zu einem leeren '

' führen ... – andreas