<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Двумерные массивы из курса
08.09.2013 15:22:38 Двумерные массивы из курса Сообщение #1
Error 404

Error 404

Продвинутый

Продвинутый

Дата регистрации:
28.07.2013 16:04:47

Сообщений: 48

Добрый день. Михаил, из Вашего курса по php и mysql о двумерных массивах, Вы, по мимо основного задания, рекомендовали написать скрипт который бы считал среднее арифметическое число двумерного массива, вот что у меня получилось:

function arifIntDoubleArray($array){
for($i = 0; $i < count($array); $i++){
for($j = 0; $j < count($array[$i]); $j++){
// Подчет суммы всех чисел во вложенных массивах
$sum += $array[$i][$j];
// Количество итерации цикла
$count += count($array[$i][$j]);
if($i + 1 == count($array) && $j + 1 == count($array[$i]))
// Деление суммы всех чисел на количество итерации раз вложенного цикла
$sum = $sum / $count;
}
}
return $sum;
}

Все работает, но вот из-за того что $i и $j получают начальное значение 0 (чтобы перебирать массив начиная с индекса 0)
приходиться 1. создавать

// Количество итерации цикла
$count += count($array[$i][$j]);

для дальнейшего деления на него.
2.писать условие

if($i + 1 == count($array) && $j + 1 == count($array[$i]))

где к переменным $i и $j прибавлять 1, для того чтобы $i и $j были равны количеству длине массива.
Скажите, вот это вот все приветствуется или решается по другому? Если по другому, то как? Спасибо.
Профиль Ответить
10.09.2013 10:50:35 Двумерные массивы из курса Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Да, всё так. Разумеется, так как индексация у нас идет с нуля, нужно принимать меры и добавлять это смещение на единичку.
Профиль Ответить
10.09.2013 15:27:18 Двумерные массивы из курса Сообщение #3
Error 404

Error 404

Продвинутый

Продвинутый

Дата регистрации:
28.07.2013 16:04:47

Сообщений: 48

И вот еще Вам вопрос. по окончанию первого раздела Вашего курса (основы) Вы даете задание написать функцию которая бы принимала массив с любыми числами и сортировала их, в зависимости от булевской переменой, по возрастанию или по убыванию. как это реализовать? дополнительных знаний точно не нужно применять? просто потратил уже более 4 часов думая как сделать это, но к сожалению так и не пришел к тому методу который бы мог осуществить данные действия над массивом.
Профиль Ответить
11.09.2013 17:51:20 Двумерные массивы из курса Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

А в чём именно тут сложность? С проверкой условия этой булевской переменной, я полагаю, проблем быть не должно. Остается просто сделать два варианта сортировки.
Профиль Ответить
12.09.2013 04:17:59 Двумерные массивы из курса Сообщение #5
Error 404

Error 404

Продвинутый

Продвинутый

Дата регистрации:
28.07.2013 16:04:47

Сообщений: 48

Вот именно с сортировкой проблемы. 1 - это сохранять ли индексы. 2 - весь процесс сортировки должен происходить с одним циклом вложенный в другой, наверное так:


function sortArray($array, $boolean = true){
if($boolean == true){
for ($i = 0; $i < count($array); $i++){
for($j = 0; $j < count($array); $j++){
if(){

}else{

}
}
}
}
}

Что тогда должно быть в условии?

if($array[$i] > $array[$j]){
$array[$i] = $array[$j];
}

а массив выглядит допустим так:

$list = array(7,3,5,-2);

Тогда с тем условием что написано будет находить следующее меньшее число в цикле и записывать его на место предыдущего, то есть 7-ку поменяет на 3-ку сохраняя индекс. и отсюда вопрос, как в этом цикле, 2-м, перебрать весь массив, чтобы вместо 7-ки получи -2, то есть получили мы следующее меньшее число, оно бралось и проверялось на остальные значения массива? запускать еще один цикл? и куда передать значения, в моем случае, 7-ку? в новый массив? код писал тут и не тестировал его, надеюсь понятно.
Просмотрев 1 урок 2-го раздела смог не много понять принцип сортировки

function delRepeatElementArray($array){
if(is_array($array)){
foreach ($array as $k => $v) {
foreach ($array as $key => $value){
if($k != $key && $k < $key){
if($v == $value){
unset($array[$key]);
}
}
}
}
}else return false;
return $array;
}

но к сожалению это ничем не помогло решить проблему.
Профиль Ответить
12.09.2013 20:23:55 Двумерные массивы из курса Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Вот и разберитесь для начала просто с сортировкой. Пусть этот условный оператор запускает два совершенно разных метода сортировки, для начала.
Профиль Ответить
13.09.2013 02:32:47 Двумерные массивы из курса Сообщение #7
Error 404

Error 404

Продвинутый

Продвинутый

Дата регистрации:
28.07.2013 16:04:47

Сообщений: 48

без рекурсии справится тут можно?
Профиль Ответить
13.09.2013 18:07:44 Двумерные массивы из курса Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Да, конечно.
Профиль Ответить
30.08.2016 13:19:21 Двумерные массивы из курса Сообщение #9
WarBear

WarBear

Новичок

Новичок

Дата регистрации:
30.08.2016 12:57:55

Сообщений: 1

Среднее арифметическое двумерного массива:

$arr = array(array(11, 12, 13, 14, 15),
array(21, 22, 23, 24, 25),
array(31, 32, 33, 34, 35),
array(41, 42, 43, 44, 45),
array(51, 52, 53, 54, 55));

function arifmArray($arr) {
 for ($i = 0; $i < count($arr) ; $i++) { //Перебираем массив первого уровня
 $c+=count($arr[$i]);//Подсчёт количества элементов в массиве

 for ($j = 0; $j < count($arr[$i]); $j++) { //Перебираем массив второго уровня
echo "Элемент $i$j ". $arr[$i][$j]." ";
$sum2 += $arr[$i][$j];// Подчет суммы всех чисел во вложенных массивах
 }
 echo "<table></table>";
 }
 $arifm = $sum2/$c;
 echo "Количества элементов в массиве равно ".$c."<br />";//Kоличества элементов в массиве = 25
 echo "Сумма всех чисел массива равна ".$sum2."<br />";//Сумма = 825
 echo "Среднее арифметическое массива равно ".$arifm."<br />";
}
arifmArray($arr);


Сделал по своему. Надеюсь данное решение правильно?.
Профиль Ответить