Codebra
31 января 2026 в 07:51

Урок 8. Массивы в PHP

Массивы в PHP - это одна из самых важных и фундаментальных концепций, которая позволяет разработчикам структурировать данные и манипулировать ими.
📝

Внимание! На этой странице вы найдете материал урока из архивного курса по PHP. Курс был написан в 2024 году одним из первых учеников Codebra и, к моменту написания курса, опытным бэкэнд-разработчиком. К сожалению, курс не был дописан, а его автор молча пропал.

Полный список уроков доступен по тегу Архивный курс по PHP и на странице первого урока.

📝 Кратко

Основы работы с массивами в PHP

  • Массивы позволяют хранить множество данных разных типов, но могут вызывать утечки памяти и ошибки при работе с большими массивами.
  • Функция var_dump используется для вывода содержимого массива, а echo - для вывода простых типов данных.
  • Индексы массивов облегчают доступ к элементам, а функция count позволяет определить длину массива.
  • Обращение к элементам массива может осуществляться вручную по индексам или с помощью циклов.
  • Для получения последнего или предпоследнего элемента массива можно использовать функцию count с вычитанием единицы.
  • В PHP можно изменять значения элементов массива и использовать функции для удаления элементов.

Надеюсь, вы помните, что такое переменная? В переменную мы можем поместить только один тип данных. Такое ограничение не всегда нам на руку. Например, когда мы создаём блог и на главной странице выводим самые просматриваемые статьи, будет нерационально добавлять каждый пост в отдельную переменную и в дальнейшем их все выводить. Для решения этой задачи намного лучше подходят массивы. В массивы мы можем поместить очень много разных типов данных за один раз, но есть и минусы: при переборе огромных массивов вы столкнётесь с утечкой памяти и ошибками.

<?php
	$arr = [1, 2, 3, 4, 5]; // Объявляем тип данных array

	var_dump($arr); /* =>   array(5) {
							  [0]=>
							  int(1)
							  [1]=>
							  int(2)
							  [2]=>
							  int(3)
							  [3]=>
							  int(4)
							  [4]=>
							  int(5)
							}
					*/
?>

Вы наверно сейчас думаете: «А что такое var_dump?». Функция var_dump (с функциями мы познакомимся далее). В PHP echo является языковой конструкцией, а не функцией, с её помощью мы можем вывести простой тип данных: integer, string, null. Массивы в PHP - это уже сложный тип данных, для которого есть специальные функции. Заметили, что при выводе у нас в квадратных скобках циферки? Называются они индексы. Они нужны для удобного обращения к элементам массива. Мы же должны забирать с массива элементы, а индексы нам в этом помогают. Посмотрите на строчку int(1). Слово int обозначает тип данных, а значение в скобках - данные, которые хранятся под этим индексом массива.

Что будет если мы выведем переменную $arr с помощью echo? Будет вот такое предупреждение интерпретатора PHP: Warning: Array to string conversion in /home/user/scripts/code.php on line 4 Array

Массив можно еще вывести функцией print_r, которая выводит информацию в удобочитаемом виде.

<?php
	$arr = [1, 2, 3, 4, 5];

	print_r($arr); /* =>
						[0] => 1
						[1] => 2
						[2] => 3
						[3] => 4
						[4] => 5
					*/
	// Удобно читать?
?>
💡 Запомните

В любом языке программирования индексы начинаются с нуля, а не единицы.

Длина массива

Массив может быть очень большим и, чтобы посчитать его длину, мы можем использовать функцию count.

<?php
	$arr = [1, 2, 3, 4, 5];

	// Распечатает кол-во
	print_r(count($arr)); // => 5
?>

Функция count очень проста в использовании. Мы её вызываем, а она распечатывает длину самого массива (указанного в аргументах функции).

Обращение к элементам массива

Мы создаем массивы, чтобы потом использовать хранимую в них информацию. Это можно сделать циклами (изучим в следующей теме). А пока будем обращаться вручную по индексам:

<?php
	$arr = [1, true, 2, 'Alex', 'Maxim'];

	print_r($arr[0]); // => 1
	print_r($arr[1]); // Распечатает 1. Я надеюсь вы помните почему вывелось 1?
?>

Но что делать если нам нужен последний или предпоследний элемент?

<?php
	$arr = [1, true, 2, 'Alex', 'Maxim'];

	print_r($arr[count($arr) - 1]); // => Maxim
	print_r($arr[count($arr) - 2]); // => Alex
?>

Давайте разберемся, почему в квадратных скобках мы вызвали функцию count и еще отняли единицу. Функция count принимает массив, считает его элементы и возвращает целое число. Вместо count мы можем написать число 5 и отнять единицу, потому что индексы массива начинаются с нуля, и последний индекс будет равен четырем (5 - 1 = 4). В квадратных скобках мы можем использовать выражение, которое должно вернуть целочисленный тип данных. Думаю, с этим все понятно.

Напишем программу считающую сумму чисел в элементах массива.

<?php
	$arr = [1, 2, 3, 4, 5];

	print_r($arr[0] + $arr[1] + $arr[2] + $arr[3] + $arr[4]); // => 15
?>

Используем инкремент и декремент:

<?php
	$arr = [1, 2, 3, 4];
	
	$arr[0]++;
	++$arr[1];
	$arr[2]--;
	--$arr[3];
	
	print_r($arr); // => [2, 3, 2, 3]
?>

Изменение элементов массива в PHP

Давайте попробуем изменить значения элементов в массиве:

<?php
	$arr = ['a', 'b', 'c', 'd'];
	$arr[0] = '!'; // Изменяем первый элемент
	$arr[1] = '!'; // Изменяем второй элемент

	print_r($arr) // =>  ['!', '!', 'c', 'd']
?>

А теперь я покажу вам маленькую хитрость для разнообразия. Изменим нумерацию индексов не с нуля, а с единицы:

	$arr = [1 => 'a', 'b', 'c', 'd'];

	print_r($arr[1]); // => a
	print_r($arr[2]); //  => b
💡 Примечание

Хоть я вам и показал маленькую хитрость, в реальной работе так делать не стоит. Программисты фичу не оценят :)

Перезапись элементов массива

Можно также прочитать текущее значение, выполнить с ним определённые операции и записать обратно:

<?php 
	$arr = [1, 20, 2, 'I LOVE'];
	
	// Используем сокращённые операторы 
	$arr[0] += 2;
	$arr[1] /= 3; 
	$arr[2] **= 2;
	$arr[3] .= ' PHP';

	print_r($arr); // => [3, 6.6666666666667, 4, I LOVE PHP]
?>

Удаление элементов в массиве

Иногда нам приходится удалять элементы из исходного массива, для этого используется функция unset().

<?php 
	$arr = [1, 2, 3, 4, 5];
	unset($arr[3]);
	
	print_r($arr); // => [1, 2, 3, 5]
?>
💡 Примечание

Функция unset мутирует (изменяет) исходный массив. Будьте осторожны в применении.

Закончили с вами базовое изучение массивов. В следующем уроке обогатим наши знания ассоциативными массивами.

Не забываем решать задачи и двигаться только в перёд.

Задачи

  1. Создайте массив, содержащий названия месяцев года.
  2. Создайте массив с числами от 1 до 10. Перемножьте их.
  3. Создайте массив со словами "Мир", "Дружба", "Жвачка". С конкатенируйте строку чтобы получилось "Мир, Дружба, Жвачка!".
  4. Создайте массив, содержащий первые буквы алфавита.
  5. Создайте массив с числами от 10 до 20. Выведите результат сложения всех чисел.
  6. Создайте массив со словами "Да", "Нет", "Может быть" и создайте переменную $a. Если в переменной $a содержится "Да" и в массиве есть это значение, выведите текст: "Пойду в кино". Если содержится "Нет", выведите текст: "Пойду в кафе", иначе выведите текст: "Продолжу учиться на сайте Codebra".
  7. Создайте массив из чисел, кратных трем.
  8. Создайте массив $arr = ['PHP', 'JavaScript', 'HTML'], добавьте в конец каждому значения 2024 и выведите на экран.
📝

Переходите к следующему уроку курса, а так же не забудьте посмотреть новый материал на Codebra по тегу PHP.