Прокрутка через вложенный массив для генерации таблиц разной длины

Я пытаюсь показать спрос на экзамены разных уровней в разных местах.

У меня есть код, который выводит серию из четырех таблиц с двумя столбцами на странице.

Каждая таблица показывает общую регистрацию в первом столбце и общие платежи в скобках во втором столбце.

Для каждого уровня есть таблица. В каждой таблице есть строка для каждого центра на этом уровне.

Например, 1-й, самый левый столбец:

A1 ______________ ______________ Arlington > A1 ______________ 26 (17) -------------- El Paso > A1 ______________ 8 (8) -------------- White Ridge > A1 ________________ 0 (0) ---------------- Jonestown > A1 _______________ 10 (9) ---------------- Hochberg > A1 _____________ 5 (0) ------------- 

Каждый уровень экзамена требует разных центров, поэтому я использовал вложенный массив. Я могу отображать таблицы различной длины для каждого уровня, но я не получаю никаких значений из своих запросов sql – всего 0 для всего.

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

 <td class="width8">' . $centre . ' > ' . $level . '</td> 

не работает. Он просто отображает «Array> A1», «Array> A2» и т. Д.

Есть идеи?

 // create array $levels = array( "A1" => array( 'Arlington', 'El Paso', 'White Ridge', 'Jonestown', 'Hochberg' ), "A2" => array( 'Arlington', 'El Paso', 'Hochberg' ), "B1" => array( 'El Paso', 'White Ridge', 'Jonestown', 'Hochberg' ), "B2" => array( 'Arlington', 'El Paso', 'White Ridge' ) ); // Loop through centres and levels foreach ($levels as $level => $centres) { echo '<div id="' . $level . '_column"> <h2 class="'.$level.'">'.$level.'</h2>'; foreach ($centres as $centre) { // Prepare $stmt1 = $db->prepare("SELECT COUNT(Centre) FROM exam WHERE exam.Centre=:centre AND exam.Level=:level"); $stmt2 = $db->prepare("SELECT COUNT(Centre) FROM exam JOIN personal ON exam.P_ID=personal.P_ID WHERE personal.Paid='1' AND exam.Centre=:centre AND exam.Level=:level"); // Bind $stmt1->bindParam(':centre', $centre, PDO::PARAM_STR); $stmt1->bindParam(':level', $level, PDO::PARAM_STR); $stmt2->bindParam(':centre', $centre, PDO::PARAM_STR); $stmt2->bindParam(':level', $level, PDO::PARAM_STR); // Execute $stmt1->execute(); $stmt2->execute(); // Fetch $row = $stmt1->fetch(PDO::FETCH_ASSOC); $row2 = $stmt2->fetch(PDO::FETCH_ASSOC); echo '<table class="Font3White"> <tr class="Title"> <td class="width8">' . $centre . ' > ' . $level . '</td> <tr>'; if ($row && $row2) { foreach ($row as $key => $value) { echo '<td>'; echo $value; echo '</td>'; } foreach ($row2 as $key2 => $value2) { echo '<td> ('; echo $value2; echo ')</td>'; } echo '</tr>'; } echo '</table>'; } echo '</div>'; }