Учебные задачи PHP. Задача 8
Primary tabs
Список учебных задач PHP здесь
Условие: Задать двумерный массив размерностью m на n (MxN) элементов (m и n вынести в область определения констант), заполнить его случайными значениями и вывести их на экран уже после того, как весь массив будет заполнен (т.е. заполнять и выводить в разных группах циклов).
<?php
define("m", 7);
define("n", 9);
for($m = 1; $m <= m; $m++ ) {
for($n = 1; $n <= n; $n++) {
$arr[$m][$n] = rand(-21, 35);
}
}
foreach($arr as $m => $startValue) {
foreach($startValue as $n => $result) {
echo "значение массива [$m][$n] = ", $result, "<br>";
}
}
?>- Log in to post comments
- 9095 reads
melisa
Fri, 02/08/2019 - 09:00
Permalink
именование
define("m", 7); define("n", 9);В php принято называть константы большими буквами. В данном случае, M и N. Или если название сложное, то так: LONG_CONST_NAME
foreach($arr as $m => $startValue) {Поясните, пожалуйста, смысл названия переменной - $startValue.
rvsokolov
Fri, 02/08/2019 - 14:30
Permalink
Правки
1. На счет именования констант запомнил
<?php define("M", 7); define("N", 9); for($m = 1; $m <= M; $m++ ) { for($n = 1; $n <= N; $n++) { $arr[$m][$n] = rand(-21, 35); } } foreach($arr as $m => $startValue) { foreach($startValue as $n => $result) { echo "значение массива [$m][$n] = ", $result, "<br>"; } } ?>2. Просто осталась привычка с учебника, там синтаксис выглядел так:
Но в нашем случае конечный value это result, поэтому я переименовал, но чтобы при этом не запутаться). Нужно было просто сделать буквенную переменную и не вводить никого в заблуждение.
melisa
Fri, 02/08/2019 - 15:20
Permalink
именование
Называть переменные и методы в программировании принято информативно. Что это значит? Это значит, что имя переменной должно отвечать на вопрос "Что в ней лежит", а метода - "Что он делает". Причём не "как я воспринимаю, что там лежит", а "что это реально". То есть не "вкусненькое", а "мёд".
Итак, в данном случае у нас есть двумерный массив. Начальное и конечное значение - эти названия ничего нам не говорят. Начало и конец чего?
Однако у нас есть внешний массив и внутренний:
foreach($arr as $outerIndex => $outerValue) { foreach($outerValue as $innerIndex => $innerValue) {В рамках учебных задач, конечно, это не важно, но лучше сразу хорошие привычки нарабатывать.
rvsokolov
Fri, 02/08/2019 - 15:46
Permalink
именование
Про привычки вы правы, буду стараться такие моменты отслеживать.
Как пример — такое именование ведь адекватно и прозрачно?
<?php define("M", 7); define("N", 9); for($m = 1; $m <= M; $m++ ) { for($n = 1; $n <= N; $n++) { $arr[$m][$n] = rand(-21, 35); } } foreach($arr as $m => $outerValue) { foreach($outerValue as $n => $innerValue) { echo "значение массива [$m][$n] = ", $innerValue, "<br>"; } } ?>melisa
Fri, 02/08/2019 - 15:49
Permalink
Тут момент субъективный. Кто
Тут момент субъективный. Кто-то может понять, кто-то нет. Задача - назвать так, чтобы поняли ВСЕ)) Это целая наука). Так что придерживайтесь правила
и совершенствуйтесь с удовольствием)
melisa
Fri, 02/08/2019 - 15:50
Permalink
принято
принято