Пробую сделать таблицу умножения
Пробую сделать таблицу умножения. Должно быть как на картинке. Не могу понять в чем проблема
`<?php
echo '<table border="1">';
for ($tr=1; $tr <= 10 ; $tr++ ) {
echo '<tr>';
for ($td=1; $td <= 10; $td++) {
echo '<td>'."$tr x $td = " . $tr * $td.'</td>';
}
echo '</tr>';
}
echo '</table>';
`
Ответы (2 шт):
Автор решения: teran
→ Ссылка
//Есть у вас цифры от 1 до 10
$nums = range(1,10);
// первая строка
echo "<tr>";
//начинаем выводить ячейки
foreach($nums as $x){
echo "<td>";
// выводим столбец умножения
foreach($nums as $y){
echo "$x x $y = " . $x*$y . "<br/>"
}
echo "</td>"
//после 5й начинаем новую строку
if($x == 5) echo "</tr><tr>"
}
echo "</tr>"
Автор решения: Dmitriy Kondratiuk
→ Ссылка
Несколько советов:
- Всегда старайтесь максимально отделять код РНР от кода HTML при таком подходе в случае необходимости намного проще вносить правки
- Старайтесь разбивать код на функции. Каждая функция выполняет отдельное действие. В таком случае значительно легче поддерживать код. Вы не будете плодить дублирование кода.
- Переменные называть нужно так чтобы по названию понимать для чего она. Тогда вам через некоторое время будет значительно проще разобратся в вашем коде.
- Перед написанием кода в голове или на листочке сформулируйте алгоритм что за чем должно идти.
Алгоритм (исходя из нужной картинки):
- Создаем таблицу
- В таблицу добавляем ряд в котором будет 5-ть столбцов
- Добавляем столбец куда помещаем умножение на 1 (повторяем даное действие для 2, 3, 4, 5)
- Добавляем в таблицу второй ряд в котором будет 5-ть столбцов
- Добавляем столбец куда помещаем умножение на 6 (повторяем даное действие для 7, 8, 9, 10)
Сам код:
//Считаем произведение
function multiplication($multiplier_1, $multiplier_2){
return $multiplier_1 ." x ". $multiplier_2 ." = ". $multiplier_1*$multiplier_2;
}
//Считаем произведение для некого числа
function multiplication_by($multiplier){
for($i=1; $i<=10; $i++){
$multiplication_column .= multiplication($multiplier, $i) ."</br>";
}
return $multiplication_column;
}
//Формируем столбцы для диапазона произведений
function table_columns($from, $to){
for($i=$from; $i<=$to; $i++){
$columns .= "<td>". multiplication_by($i) ."</td>";
}
return $columns;
}
//Формируем ряд для диапазона столбцов произведений
function table_row($columns_from, $columns_to){
$row .= "<tr>". table_columns($columns_from, $columns_to) ."</tr>";
return $row;
}
//Формируем ряды для диапазона столбцов произведений
function table_rows($amount_rows=2, $amount_columns=5){
$from = 1;
$to = $amount_columns;
for($i=1; $i<=$amount_rows; $i++){
$rows .= "<tr>". table_row($from, $to) ."</tr>";
$from = $to + 1;
$to += $amount_columns;
}
return $rows;
}
//Выводим таблицу
echo '<table border="1">'. table_rows() .'</table>';
Передавая в table_rows() параметры можно формировать таблицу умножения с разным количеством рядов и столбцов. Например для 3 рядов по 5-ти столбцов будет table_rows(3, 5) - в результате получим таблицу умножения от 1 до 15-ти.

