PHP-массив для таблицы HTML

Я изо всех сил пытаюсь создать код, который может помочь мне создать таблицу из следующего массива php. Имя массива – $associative_array1

 array( 'Objective' => array(0 => 'Conversions', 1 => 'Lead Generation', ), 'Gender' => array(0 => 'Male (17.99% cheaper )', 1 => 'Male (6.46% cheaper ) Male (16% cheaper )', ), 'Age' => array(0 => '45-54 (17.99% cheaper )', 1 => '45-54 (6.46% cheaper )35-44 (16% cheaper )', ), 'Placement' => array(0 => 'Mobile Feed (30.8% cheaper) right_hand (46.81% cheaper)', 1 => 'Mobile Feed (12.56% cheaper)', ), 'Device' => array(0 => 'Android (30.8% cheaper) Desktop (46.81% cheaper)', 1 => 'iPhone (12.56% cheaper)', ), ) 

Ожидаемый результат: введите описание изображения здесь

Заголовки можно считать постоянными.

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

PHP-код

  function generateTable2($associative_array,$associative_array1){ echo '<table width="620" class="optimization_table" border="1" cellspacing="0" cellpadding="0"><thead><tr><th colspan=2>'; echo implode('</th><th colspan=2>', array_keys(current($associative_array))); echo '</th></tr></thead><tbody>'; foreach ($associative_array1 as $row=>$value){ echo "<td>"; if(is_array($value)) foreach ($value as $key =>$value2) { print_r($value2[$key]); foreach ($value2 as $value3) { } # code... } } echo '</tbody></table>'; } 

Данные находятся в необычном формате. Обычно вы хотите, чтобы данные уже были в виде строки.

Вот что я придумал:

 <?php $data = array ( 'Objective' => array ( 0 => 'Conversions', 1 => 'Lead Generation', ), 'Gender' => array ( 0 => 'Male (17.99% cheaper )', 1 => 'Male (6.46% cheaper ) Male (16% cheaper )', ), 'Age' => array ( 0 => '45-54 (17.99% cheaper )', 1 => '45-54 (6.46% cheaper )35-44 (16% cheaper )', ), 'Placement' => array ( 0 => 'Mobile Feed (30.8% cheaper) right_hand (46.81% cheaper)', 1 => 'Mobile Feed (12.56% cheaper)', ), 'Device' => array ( 0 => 'Android (30.8% cheaper) Desktop (46.81% cheaper)', 1 => 'iPhone (12.56% cheaper)', ), ); function generateTable2($associative_array,$associative_array1){ echo '<table width="620" class="optimization_table" border="1" cellspacing="0" cellpadding="0"><thead><tr><th colspan=1>'; echo implode('</th><th colspan=2>',$associative_array); echo '</th></tr></thead><tbody>'; $rowCount = count( current( $associative_array1 ) ); for ($x=0; $x<$rowCount; $x++) { echo "<tr>"; foreach ($associative_array1 as $key => $data){ echo "<td>".$data[ $x ]."</td>"; } echo "</tr>\n"; } echo '</tbody></table>'; } generateTable2(['Objective', 'Top Performing Targeting Group', 'Top Performing Placement'], $data); 

Вы не можете использовать вложенный петли foreach как это, потому что ваша таблица HTML отклонена от ориентации массивов PHP. Каждая строка содержит один и тот же индекс всех подмассивов, поэтому вам нужно сделать что-то подобное, чтобы отобразить строки данных таблицы.

 $keys = array_keys($associative_array1); $count = count($associative_array1[$keys[0]]); for ($i = 0; $i < $count; $i++) { echo "<tr>"; foreach ($keys as $key) { echo "<td>" . nl2br($associative_array1[$key][$i]) . "</td>"; } echo "</tr>"; } 

DEMO