PHP foreach таблица транспонирована - PullRequest
0 голосов
/ 02 мая 2018

Кажется, я не могу добраться до сути цикла foreach ..

У меня есть таблица:

ID   Col1   Col2    Col3   Col4...
001  some   data    to     display
002  more   info    to     display
....

И я хотел бы динамически построить таблицу, которая показана ниже, но только для 1 искомой строки ...

Так что, если поиск соответствует ID = 2, вы получите:

ID    002
Col1  more
Col2  info
Col3  to
Col4  display
...

Количество строк в результате зависит от количества прочитанных столбцов.

В настоящий момент мне приходится использовать ужасный фиксированный рендеринг, который не будет динамичным, если количество столбцов в данных изменится.

    echo '<table class="main"><tr><th colspan="2">Component Information for '.$sheetData[$key]["A"].'</th></tr>';
    echo '<tr><td>'. $sheetData[1]["A"]. '</td><td></td><td>'.$sheetData[$key]["A"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["B"]. '</td><td></td><td>'.$sheetData[$key]["B"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["C"]. '</td><td></td><td>'.$sheetData[$key]["C"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["D"]. '</td><td></td><td>'.$sheetData[$key]["D"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["E"]. '</td><td></td><td>'.$sheetData[$key]["E"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["F"]. '</td><td></td><td>'.$sheetData[$key]["F"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["G"]. '</td><td></td><td>'.$sheetData[$key]["G"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["H"]. '</td><td></td><td>'.$sheetData[$key]["H"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["I"]. '</td><td></td><td>'.$sheetData[$key]["I"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["J"]. '</td><td></td><td>'.$sheetData[$key]["J"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["K"]. '</td><td></td><td>'.$sheetData[$key]["K"]. '</td></tr>';
    echo '<tr><td>'. $sheetData[1]["L"]. '</td><td></td><td>'.$sheetData[$key]["L"]. '</td></tr>';

Помогите, я просто не могу разобраться с зацикливанием ....

1 Ответ

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

ЕСЛИ Я понимаю, что вы пытаетесь сделать, вы можете перебрать $sheetData[$key] и использовать эту клавишу, чтобы вытащить все ваши элементы $sheetData[1] в левой части таблицы. Я не уверен, насколько ясны мои объяснения, но это выглядело бы примерно так:

// echo your one-time, static html
echo '<table class="main"><tr><th colspan="2">Component Information for '.$sheetData[$key]["A"].'</th></tr>';

// looping through should produce the same output as your example and handle dynamically-sized arrays
foreach($sheetData[$key] as $subKey => $subData) {
    echo '<tr><td>'. $sheetData[1][$subKey]. '</td><td>'.$sheetData[$key][$subKey]. '</td></tr>';
}

// close the table
echo '</table>';
...