Искать
Вы превысили запрос на
0 знаков

9. Массивы в PHP

Не пройден
8 заданий
свернуть практику
8 заданий

Кратко

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

- Массивы позволяют хранить множество данных разных типов, но могут вызывать утечки памяти и ошибки при работе с большими массивами.

- Функция var_dump используется для вывода содержимого массива, а echo - для вывода простых типов данных.

- Индексы массивов облегчают доступ к элементам, а функция count позволяет определить длину массива.

- Обращение к элементам массива может осуществляться вручную по индексам или с помощью циклов.

- Для получения последнего или предпоследнего элемента массива можно использовать функцию count с вычитанием единицы.

- В PHP можно изменять значения элементов массива и использовать функции для удаления элементов.

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

Пример (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)
<?php
	$arr = [1, 2, 3, 4, 5];

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

Запомните

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

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

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

Пример (php)
<?php
	$arr = [1, 2, 3, 4, 5];

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

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

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

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

Пример (php)
<?php
	$arr = [1, true, 2, 'Alex', 'Maxim'];

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

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

Пример (php)
<?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)
<?php
	$arr = [1, 2, 3, 4, 5];

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

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

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

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

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

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

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

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

Пример (php)
	$arr = [1 => 'a', 'b', 'c', 'd'];

	print_r($arr[1]); // => a
	print_r($arr[2]); //  => b 

Примечание

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

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

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

Пример (php)
<?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)
<?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

@codebra_official
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Пользовательские функции в PHPКурс по PHP
Обработка исключений (try/except) в PythonЗнакомство с Python
Переменные, комментарии и типы данных в PHPКурс по PHP
Погружение в PythonЗнакомство с Python
Первое знакомство с PythonЗнакомство с Python
Введение в раздел «Структуры данных в Python»Знакомство с Python
Типы данных в PythonЗнакомство с Python
Итоги раздела «Самые основы Python»Знакомство с Python
Переменные и комментарии в PythonЗнакомство с Python
Впервые на сайте Codebra?

Извините за это всплывающее окно, меня они тоже раздражают.

Образовательный ресурс codebra.ru полностью посвящен программированию и компьютерной безопасности. Все курсы и уроки находятся на главной странице. Ради интереса можете посмотреть на содержимое курсов по Пентесту Active Directory, Python, HTML и CSS, JavaScript, C++ и другие, размещенные на главной странице.

Если что-то не нашли, то воспользуйтесь поиском по сайту, который находится на главной странице в самом верху.

Удачи в обучении!

Закрыть окно