Я просто не могу добраться до сути цикла foreach.
У меня есть таблица:
ID Col1 Col2 Col3 Col4...
001 some data to display
002 more info to display
....
И я хотел бы динамически построить таблицу, которая выглядит так, как показано ниже, но только для одной поисковой строки ...
Итак, если поиск соответствует 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>';
Помогите, я просто не могу разобраться в петле ....






ЕСЛИ Я понимаю, что вы пытаетесь сделать, вы можете пройти через $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>';
Вы ищете сводные таблицы. Если ваши данные поступают из Mysql, вы найдете тысячи ответов о том, как построить сводную таблицу из MySQL. Таким образом, вы получите массив, уже настроенный должным образом, и вам просто нужно будет выполнить foreach через него.