На этом уроке мы разберем одну из важных тем в PHP, это массивы. Если вы дошли до этого урока, то уже знаете основы синтаксиса, переменных и циклов. Теперь пришло время научиться работать с структурами данных, которые помогут вам хранить и управлять множеством значений одновременно. В этом уроке я расскажу о индексированных и многомерных массивах, приведу много примеров и дам практические задачи.
Что такое массив?
Массив это структура данных, которая хранит набор значений под одним именем.
Представьте, что у вас есть список задач на день:
- Позавтракать
- Почитать книгу
- Заняться программированием
Вместо создания трех отдельных переменных ($task1
, $task2
, $task3
), вы можете использовать массив:
$tasks = ['Позавтракать', 'Почитать книгу', 'Заняться программированием'];
Теперь все задачи хранятся в одной переменной, и с ними удобно работать!
Индексированные массивы
Индексированные массивы это массивы, где каждый элемент имеет числовой индекс (ключ), начинающийся с 0. Давайте разберемся, как их создавать и использовать.
Создание массива
В PHP есть два способа создать массив:
- Функция
array()
$fruits = array('Яблоко', 'Банан', 'Апельсин');
- Короткий синтаксис
[]
(доступен с PHP 5.4)
$fruits = ['Яблоко', 'Банан', 'Апельсин'];
Оба варианта работают одинаково, но короткий синтаксис более современный и удобный.
Доступ к элементам
Чтобы получить элемент массива, укажите его индекс в квадратных скобках:
echo $fruits[0]; // Выведет: Яблоко echo $fruits[2]; // Выведет: Апельсин
Важно: Индексы начинаются с 0!
Изменение элементов
Массивы можно изменять:
$fruits[1] = 'Груша'; echo $fruits[1]; // Теперь здесь Груша вместо Банана
Добавление элементов
Новые элементы добавляются через указание следующего индекса:
$fruits[] = 'Манго'; // Автоматически получит индекс 3 echo $fruits[3]; // Выведет: Манго
Пример: Вывод массива через цикл
Часто массивы перебирают в циклах. Например, через foreach
:
foreach ($fruits as $fruit) { echo $fruit . '<br>'; }
Результат:
Яблоко Груша Апельсин Манго
Многомерные массивы
Многомерные массивы это массивы, содержащие другие массивы. Они полезны, когда нужно хранить сложные структуры данных.
Пример: Список студентов с оценками
Допустим, мы хотим хранить данные студентов: имя и их оценки по математике и физике.
Создадим двумерный массив:
$students = [ ['Иван', 5, 4], ['Мария', 4, 5], ['Петр', 3, 4] ];
Каждый элемент $students
— это массив с данными студента.
Доступ к элементам
Чтобы получить оценку Марии по математике (первый предмет), обращаемся по индексам:
echo $students[1][1]; // Выведет: 4
Объяснение:
$students[1]
— это второй студент (Мария).[1]
— второй элемент в её массиве (оценка по математике).
Пример: Вывод данных через цикл
Используем вложенный цикл foreach
:
foreach ($students as $student) { echo 'Студент: ' . $student[0] . '<br>'; echo 'Математика: ' . $student[1] . '<br>'; echo 'Физика: ' . $student[2] . '<br><br>'; }
Результат:
Студент: Иван Математика: 5 Физика: 4 Студент: Мария Математика: 4 Физика: 5 Студент: Петр Математика: 3 Физика: 4
Практические задачи
Теперь закрепим знания на практике. Решайте задачи по порядку.
Задача 1: Список дней недели
- Создайте индексированный массив
$days
с названиями дней недели. - Выведите третий день недели.
- Замените четвертый день на «Среда-2» (шутка, так не бывает, но для тренировки сойдет).
- Выведите весь массив через цикл.
Решение:
$days = ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье']; echo $days[2]; // Среда $days[3] = 'Среда-2'; foreach ($days as $day) { echo $day . '<br>'; }
Задача 2: Магазин продуктов
- Создайте массив
$products
с товарами и их ценами:- Хлеб — 50 руб.
- Молоко — 80 руб.
- Яйца — 120 руб.
- Добавьте новый товар «Сыр» за 200 руб.
- Рассчитайте общую стоимость всех товаров.
Решение:
$products = [ ['Хлеб', 50], ['Молоко', 80], ['Яйца', 120] ]; $products[] = ['Сыр', 200]; $total = 0; foreach ($products as $product) { $total += $product[1]; } echo "Общая стоимость: $total руб."; // 450 руб.
Задача 3: Многомерный массив книг
- Создайте массив
$books
, где каждая книга имеет:- Название
- Автора
- Год издания
- Выведите данные в формате:
"Название" (Автор, Год)
Решение:
$books = [ ['1984', 'Джордж Оруэлл', 1949], ['Мастер и Маргарита', 'Михаил Булгаков', 1966], ['Гарри Поттер', 'Джоан Роулинг', 1997] ]; foreach ($books as $book) { echo "\"{$book[0]}\" ({$book[1]}, {$book[2]})<br>"; }
Советы
- Используйте ассоциативные массивы для удобства. О них мы поговорим в следующем уроке, но уже сейчас знайте, они позволяют использовать строковые ключи вместо чисел (например,
'имя' => 'Мария'
). - Проверяйте существование элементов. Прежде чем обращаться к индексу, убедитесь, что он есть в массиве:
if (isset($fruits[5])) { echo $fruits[5]; }
- Не бойтесь экспериментировать. Создавайте сложные структуры и пробуйте их выводить.
Чтобы продолжить обучение, переходите к следующему уроку: курс по PHP для начинающих.