<MyRusakov.ru />

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

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

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

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

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

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

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

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

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

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

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

Создание и перебор массивов в PHP

Создание и перебор массивов в PHP

Пришло время разобраться с ещё одним типом переменных в PHP - массивами. Массив - это тип переменной, который может содержать множество значений, причём даже разных типов. И этой статье мы поговорим о создании и переборе массивов в PHP.

Создать массив в PHP очень просто:

<?php
  $arr = array(15, 14, true, "ds", -0.5);
  echo $arr[0]."<br />";
  echo $arr[3];
?>

Здесь мы создали массив, в котором находится пять значений. Обратите внимание, что типы переменных различны. На следующих двух строках мы выводим два элемента из этого массива. Очень важно: нумерация начинается с 0! То есть первый элемент имеет индекс 0, второй - 1 и так далее.

На самом деле, в предыдущем примере мы создавали не массив, а, скорее, список. Список - это тот же массив, но с числовыми индексами, идущими по порядку (то есть 0, 1, 2, 3 и так далее). А теперь создадим именно массив (его ещё называют ассоциативный массив):

<?php
  $arr = array("Name" => "Tom", "Age" => 14);
  echo $arr["Name"]."<br />";
  echo $arr["Age"];
?>

Здесь мы создали массив не с числовым индексом, а с так называемыми ключами. Ключами в массиве являются: "Name" и "Age". У каждого ключа имеется значение "Tom" и 14 соответственно. Думаю, здесь вопросов не возникает.

А теперь разберём перебор массива. Первый массив (который список) перебирается элементарно:

<?php
  for ($i = 0; $i < count($arr); $i++)
    echo $arr[$i]."<br />";
?>

Здесь просто идёт цикл for от 0 до длины массива и при каждой итерации выводится элемент массива.

А как же быть с ассоциативными массивами, ведь там индексы не числовые, как их перебирать? Для этого существует цикл foreach, который перебирает массив по ключам:

<?php
  foreach ($arr as $k=>$v)
    echo "$k - $v<br />";
?>

Думаю, что синтаксис понятен: $k - это ключ, а $v - соответствующее значение, и в этом массиве поочерёдно перебираются все пары в массиве, а потом выводятся. Разумеется, с помощью foreach можно также перебирать и списки.

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (22):

SSBugs SSBugs 19.09.2011 00:02:11

Здравствуйте, Михаил, хочу поинтересоваться у Вас по поводу перебора следующего массива списка: for ($i=0;$i<=5;$i++) или for ($i=0; $i<count($arr); $i++). Есть ли существенная разница кроме как что в первом случае необходимо подсчитывать элементы списка, а во втором достаточно вписать только ограничитель массива? Первый вариант более компактный.

Ответить

Admin Admin 19.09.2011 00:32:12

Использовать надо второй вариант, так как данный перебор будет универсальным. А задача программиста делать, как можно меньше частного, и как можно больше общего.

Ответить

artkhvz artkhvz 01.05.2012 18:05:44

хочу вывести к примеру слово привет 10 раз.. скажите, вот так можно делать?? $str = 'привет'; for ($i=1; $i<=10; $i++){ echo $str.'<br>'; }

Ответить

Admin Admin 01.05.2012 20:55:16

Если это работает, то, да, можно.

Ответить

kashirinav kashirinav 15.06.2012 14:06:31

Михаил, добрый день! Подскажите, пожалуйста, как можно вытащить максимальный элемент из массива, чтобы показать не только сам элемент, но и его номер? У меня два массива (строки), выполняю деление элементов одного на элементы другого и ввожу результаты в третий массив. Теперь нужно выбрать максимальный и показать его значение и порядковый номер. Попробовал след. алгоритм: for ($i = 0; $i < count($indicator1); $i++) for ($i = 0; $i < count($hum1); $i++) $maxarr[$i]=$indicator1[$i]/$hum1[$i]."<br/>";// делим индикатор на численность $max=0; $sz=sizeof($maxarr); for($i=0;$i<$sz;$i++) if($maxarr[$i] > $max) $max=$maxarr[$i]; $maxI=$i; echo $max; echo $maxI; Выводится только показатель, а его порядковый номер нет. Спасибо! Михаил, и еще один вопрос. Подскажите, как вывести элементы массива, чтобы их порядковые номера начинались с 1. Т.е. arr[0] выводился бы на экран как первый элемент. Спасибо!

Ответить

Admin Admin 15.06.2012 15:02:55

if($maxarr[$i] > $max) $max=$maxarr[$i]; $maxI=$i; - фигурных скобок не хватает, 2 же оператора. На второй вопрос ответ - по-хорошему никак, и это правильно, поскольку гораздо удобнее нумерация с 0. Если же нужно с 1, то и инициализируйте постоянно массивы с 1 (вручную), и все циклы также с 1 начинайте, а не с 0.

Ответить

kashirinav kashirinav 18.06.2012 14:01:48

Михаил, спасибо! Вроде все получилось! Внимательность, и еще раз внимательность! По второму вопросу: что означает инициализировать постоянно вручную? Не совсем понял. Как его объявлять и присваивать данные? Спасибо!

Ответить

Admin Admin 18.06.2012 17:18:00

Это значит, что указывать индекс постоянно. $array[] - вот так не получится, поэтому нужно указывать в первый раз $array[1], а уже потом можно и $array[].

Ответить

kashirinav kashirinav 19.06.2012 18:17:42

Михаил, добрый день! Спасибо за ответ. Скажите, как подсчитать сумму элементов массива? Нашел функцию sum_array, но почему то не работает. Спасибо!

Ответить

Admin Admin 19.06.2012 18:24:11

Сумму элементов массива Вы должны сами научиться считать. Это простейшая задача, смысла делать что-то ещё нет, пока Вы её не решите. Поэтому подумайте сами.

Ответить

kashirinav kashirinav 20.06.2012 11:48:58

Согласен с вами полностью! Задача начального уровня (куда я и отношусь) Я решил ее следующим образом: $sum = $sum + $hum3[i]; вложил в цикл for. Но мне интересна именно отдельная функция. Это же легче. Не надо вводить переменную. Сразу выводишь на печать. Существует ли такая функция? Спасибо!

Ответить

Admin Admin 20.06.2012 11:52:56

array_sum() - функция, возвращающая сумму элементов массива.

Ответить

kashirinav kashirinav 20.06.2012 12:42:17

Михаил, спасибо! Еще немножко помучаю вас :)! Скажите, существуют ли в php готовые функции например расчета коэффициента корреляции или необходимо писать алгоритм? Я пока баклажан в php, но не хотелось бы изобретать велосипед.

Ответить

Admin Admin 20.06.2012 12:46:19

Таких функций точно нет, это не Statistica и даже не Matlab. Поэтому нужно писать это самому.

Ответить

malina95 malina95 06.05.2013 23:45:12

Миш, очень прошу помоги... Есть массив: $element = array( 'banana.png' => 'Банан', 'kiwi.png' => 'Киви', 'apricot.png' => 'Абрикос', 'lemon.png' => 'Лимон', 'mango.png' => 'Манго', 'peach.png' => 'Персик', 'strawberry.png' => 'Клубнику', 'cherry.png' => 'Вишню', 'orange.png' => 'Апельсин', 'pear.png' => 'Грушу', ); Нужно выбрать 4 случайных элемента: $elements = array_rand($element, 4); но мне нужно сохранить значение ключа, делаю так но не выходит : foreach ($elements as $key => $value) { foreach ($element as $key1 => $value1) { $elements[$key1] = $value; } } print_r($elements); Помоги, очень прошу...

Ответить

Admin Admin 07.05.2013 12:06:07

Используйте функцию array_rand().

Ответить

malina95 malina95 07.05.2013 16:06:34

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

Ответить

Admin Admin 07.05.2013 21:30:23

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

Ответить

Avery Avery 25.07.2013 10:47:18

Здравствуйте, Михаил. Есть ассоциативный массив, полученный из ini файла. Как можно сравнить значение ключей с переменной, используя цикл и при совпадение выйти из цикла?

Ответить

Admin Admin 25.07.2013 17:35:03

Всё как в этой статье. Просто сравниваете через условный оператор, и выходите из цикла через break в случае совпадения.

Ответить

Adrenalin Adrenalin 27.12.2015 00:41:37

Я правильно понял? Если в выборке из базы - $myrow[title] больше одной строки, то это уже "многомерный массив"? Тогда вопрос звучит так: как в многомерном массиве ($myrow2[title]) удалить записи (строки), которые уже есть в первом многомерном массиве ($myrow[title])? Или как вывести на экран все записи первого массива и записи со второго массива, которых нет в первом?

Ответить

Ivan20142014 Ivan20142014 21.11.2016 20:31:33

Доброго времени суток Михаил! Помогите пожалуйста с массивом $x = array("один","два","три"); function getout($t) { if ($t == "один") return 1; elseif ($t == "два") return 2; elseif ($t == "три") return 3; } for ($i = 0; $i < 100; $i++ ) { $g[] = ($i * getout($x[$i % 3])); } print_r ($g); объясните пожалуйста вот эту строку $g[] = ($i * getout($x[$i % 3])); как она работает, что конкретно перемножается?

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.