Как сделать эту таблицу - PullRequest
0 голосов
/ 31 марта 2020

Я хотел бы сделать следующую таблицу, пожалуйста, посмотрите пример по следующей ссылке ...

Таблица

Вот мои массивы:

    $column1=array(1,9,17,25,33,41,49,57);
    $column2=array(2,10,18,26,34,42,50,58);
    $column3=array(3,11,19,27,35,43,51,59);
    $column4=array(4,12,20,28,36,44,52,60);
    $column5=array(5,13,21,29,37,45,53,61);
    $column6=array(6,14,22,30,38,46,54,62);
    $column7=array(7,15,23,31,39,47,55,63);
    $column8=array(8,16,24,32,40,48,56,64);
 $totalArray=count($column1);

Попытка создать таблицу, используя для l oop:

echo "<table border='0'>"; 
for ($i=0; $i < $totalArray; $i++) { 
    echo "<tr>"; 
    echo "<td>$column1[$i]</td>"; 
    echo "<td>$column2[$i]</td>"; 
    echo "<td>$column3[$i]</td>"; 
    echo "<td>$column4[$i]</td>"; 
    echo "<td>$column5[$i]</td>"; 
    echo "<td>$column6[$i]</td>"; 
    echo "<td>$column7[$i]</td>"; 
    echo "<td>$column8[$i]</td>"; 
    echo "</tr>"; 
} 
echo "</table>";

Ответы [ 2 ]

0 голосов
/ 31 марта 2020

Я объединил ваши массивы в один многоуровневый массив. Я использую два цикла foreach, чтобы перебрать значения и затем разместить их в таблице.

Мы определяем переменную $stmt, которой мы назначаем тег начальной таблицы. Затем мы запускаем первый foreach l oop. Здесь мы создаем <tr> и объединяем его с нашей переменной $stmt. Затем мы запускаем наш второй foreach l oop, чтобы перебрать второй уровень нашего массива, чтобы получить значения для отображения в нашей строке таблицы -> данных таблицы. Как только мы перебираем l oop, мы закрываем тег <td>, затем закрываем нашу строку и перебираем следующую l oop, создавая следующую строку и тег данных. Это продолжается до тех пор, пока таблица не будет создана динамически.

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

ПРИМЕЧАНИЕ: Обратите внимание, что я объединяю переменную -> $stmt со значением .=. Это позволяет вам построить ваш l oop и сохранить всю таблицу в этой переменной для отображения в вашем html. -> <?=$stmt?> такой же как <?php echo $stmt; ?>

СТИЛЬ:

td {
    padding: 2px;
    min-width: 1em;
    text-align: center;
} 
.black{
  background-color: black;
  color: white;
}
.white{
  background-color: white;
  color: black;
}

PHP:

$columns = array(
  1 => array(1,9,17,25,33,41,49,57),
  2 => array(2,10,18,26,34,42,50,58),
  3 => array(3,11,19,27,35,43,51,59),
  4 => array(4,12,20,28,36,44,52,60),
  5 => array(5,13,21,29,37,45,53,61),
  6 => array(6,14,22,30,38,46,54,62),
  7 => array(7,15,23,31,39,47,55,63),
  8 => array(8,16,24,32,40,48,56,64)
);

$stmt = "<table>";
foreach($columns as $key => $value){
  $stmt .= "<tr>";
  foreach($value as $k => $v){
    $num = rand(1,20);
    if($num % 2){
      $class = "black";
    }else{
      $class = "white";
    }
    $stmt .= "<td class='".$class."'>".$v."</td>";
  }
  $stmt .= "</tr>";
}
$stmt .= "</table>";

HTML:

<div>
    <?=$stmt?>
</div>

ВЫХОД:

enter image description here

0 голосов
/ 31 марта 2020
$row_count=8;
$col_count=8;

$result='<table>';
for($row=0;$row<$row_count;$row++){
    $result.='<tr>';
    for($col=0;$col<$col_count;$col++){
        $cell_value=${'column'.$col}[$row];
        $result.='<td>'.$cell_value.'</td>';
    }
    $result.='</tr>';
}
$result.='</table>';

echo $result;
...