Codebra
30 января 2026 в 20:30

Урок 17. Функции массивов в PHP

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

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

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

Пришло время перейти от математических функций к немного более сложной теме — работе с массивами. В написании программ всегда возникает желание упростить работу с массивами, и мы можем написать свою обёртку для работы с ними (как это сделал фреймворк Laravel для PHP). Разработчики PHP постоянно усовершенствуют функции, чтобы упростить задачи рядовым разработчикам.

Функция in_array

Функция in_array ищет значение в массиве. Возвращает true если значение найдено, иначе false.

Синтаксис:

in_array(что ищем, где ищем);
<?php
	$arr = [1, 2, 3, 4, 5, 6];

	var_dump(in_array(1, $arr)); // Распечатает true
?>

Функция array_sum

Функция array_sum складывает все числа массива.

Синтаксис:

array_sum(массив);
<?php
	$arr = [1, 2, 3, 4, 5, 6];

	var_dump(array_sum($arr)); // Распечатает 21
?>

Функция array_product

Функция array_product вычисляет произведение элементов массива.

Синтаксис:

array_product(массив);
<?php
	$arr = [1, 2, 3, 4, 5, 6];

	var_dump(array_product($arr)); // Распечатает 720
?>

Функция range

Функция range создает массив с диапазонов элементов. Можно создать массив с диапазоном от 1 до 7 или от 'a' до 'e';

Синтаксис:

range(откуда, куда, [шаг]);
<?php
	var_dump(range($arr)); /* =>
							  [0]=>
							  int(1)
							  [1]=>
							  int(2)
							  [2]=>
							  int(3)
							  [3]=>
							  int(4)
							  [4]=>
							  int(5)
							  [5]=>
							  int(6)
							  [6]=>
							  int(7)
							 */
?>
<?php
	var_dump(range($arr)); /* =>
								  [0]=>
								  string(1) "a"
								  [1]=>
								  string(1) "b"
								  [2]=>
								  string(1) "c"
								  [3]=>
								  string(1) "d"
								  [4]=>
								  string(1) "e"
							 */
?>
<?php
	var_dump(range(0, 10, 2)); /* =>
								  [0]=>
								  int(0)
								  [1]=>
								  int(2)
								  [2]=>
								  int(4)
								  [3]=>
								  int(6)
								  [4]=>
								  int(8)
								  [5]=>
								  int(10)
							 */
?>

Функция array_merge

Функция array_merge склеивает два массива в один. Если в склеиваемых массивах будут одинаковые ключи, останется только одно значение.

Синтаксис:

array_merge(мервый массив, второй массив);
<?php
	$arr1 = [1, 2, 3, 4, 5, 6];
	$arr2 = ['a', 'c', 'd']; 
	
	print_r(array_merge($arr)); /* =>
								    [0] => 1
								    [1] => 2
								    [2] => 3
								    [3] => 4
								    [4] => 5
								    [5] => 6
								    [6] => a
								    [7] => c
								    [8] => d
							 */
?>

Функция array_slice

Функция array_slice делает срез массива, при этом исходный массив не меняется.

Синтаксис:

array_slice(массив, откуда отрезать, сколько, cохранять ключи);
<?php
	$arr = ['a', 'c', 'd', 'e', 'f']; 
	
	print_r(array_slice($arr, 2, 3)); /* =>
								    [0] => d
								    [1] => e
								    [2] => f
							 */
?>
<?php
	$arr = ['a', 'c', 'd', 'e', 'f']; 
	
	print_r(array_slice($arr, 1)); /* =>
								    [0] => c
								    [1] => d
								    [2] => e
								    [3] => f
							 */
?>
<?php
	$arr = ['a', 'c', 'd', 'e', 'f']; 
	
	print_r(array_slice($arr, 1, 1, true)); /* =>
											[1] => c
									 */
?>

Выше в коде мы сохранили ключи четвертым параметром, посмотрите что будет если передать false и поймёте разницу.

Функция array_splice

Функция array_splice вырезает и возвращает часть массива. При этом отрезанная часть исчезает из исходного массива. Вместо отрезанной части можно вставить другую.

Синтаксис:

array_splice(массив, откуда отрезать, сколько, вставить в замен);
<?php
	$arr = ['a', 'c', 'd', 'e', 'f']; 
	
	print_r(array_splice($arr, 0, 3)); /* =>
										[0] => a
									    [1] => c
									    [2] => d
									 */
	print_r($arr); /* =>
									    [0] => e
									    [1] => f
								 */
						
?>

Обратите внимание на изменение исходного массива.

<?php
	$arr = ['a', 'c', 'd', 'e', 'f']; 
	
	print_r(array_splice($arr, 0, 3, [1, 2, 3])); /* =>
									    [0] => a
									    [1] => c
									    [2] => d
									 */
	print_r($arr); /* =>
				    [0] => 1
				    [1] => 2
				    [2] => 3
				    [3] => e
				    [4] => f
				 */
?>

Функция array_keys

Функция array_keys возвращает массив ключей.

Синтаксис:

array_keys(массив);
<?php
	$arr = ['a' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5];
	
	print_r(array_keys($arr)); /* =>
									[0] => a
									[1] => c
									[2] => d
									[3] => e
									[4] => f
							 */

Функция array_values

Функция array_values возвращает массив значений.

Синтаксис:

array_values(массив);
<?php
	$arr = ['a' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5];
	
	print_r(array_values($arr)); /* =>
								    [0] => 1
								    [1] => 2
								    [2] => 3
								    [3] => 4
								    [4] => 5
							 */

Функция array_flip

Функция array_flip производит обмен местами ключей и значений

Синтаксис:

array_flip(массив);
<?php
	$arr = ['a' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5];
	
	print_r(array_flip($arr)); /* =>
							    [1] => a
							    [2] => c
							    [3] => d
							    [4] => e
							    [5] => f
							 */

Функция array_search

Функция array_search осуществляет поиск по массиву и возвращает ключ первого найденного элемента. Если элемент не найден, вернёт false. Третий параметр указывает строгое сравнение по типу: true или false.

Синтаксис:

array_search(что ищем, где ищем, сравнивать по типу = false);
<?php
	$arr = ['a', 'b', 'c', 'd', 'e']; 

	print_r(array_search('d', $arr)); // Распечатает 3

Функции сортировки массивов

В PHP существуют разные функции для сортировки:

  • sort - по возрастанию;
  • rsort - по убыванию;
  • asort - по возрастанию с сохранением ключей;
  • arsort - по убыванию с сохранением ключей;
  • ksort - по возрастанию ключей;
  • krsort - по убыванию ключей;
  • usort - по функции по элементам;
  • uasort - по функции по элементам с сохранением ключей;
  • uksort - по функции по ключам;
  • natsort - натуральная сортировка;

Все эти функции изменяют изначальный массив.

Синтаксис:

sort(массив);
<?php
	$arr = [1, 3, 2, 5, 4];
	sort($arr);
	
	print_r($arr); /* => 
					[0] => 1
					[1] => 2
					[2] => 3
					[3] => 4
					[4] => 5
				*/

Функция array_rand

Функция array_rand возвращает случайный ключ из массива.

Синтаксис:

array_rand(массив, сколько элементов выберит функция)
<?php
	$arr = [1, 3, 2, 5, 4, 2, 3, 4, 5, 6, 21, 321, 312];

	print_r(array_rand($arr)); // Распечатает рандомный элемент
?>

Выберем два элемента:

<?php
	$arr = [1, 3, 2, 5, 4, 2, 3, 4, 5, 6, 21, 321, 312];

	print_r(array_rand($arr, 2)); // Распечатает массив с двумя рандомных элемента
?>

В целом, нет смысла переписывать и демонстрировать все функции. Перейдите на официальный сайт PHP, где вы можете ознакомиться со всеми существующими функциями и посмотреть примеры. Даже если вы что-то забудете, всегда можно подсмотреть. Поверьте, все программисты иногда забывают нужную функцию; главное — помнить, где можно быстро найти необходимую информацию. В следующем уроке познакомимся с рекурсией.

Задачи

  1. Создайте функцию, которая принимает массив чисел и возвращает массив чисел, отсортированных по их частоте появления. Если два числа имеют одинаковую частоту, они должны быть отсортированы по возрастанию.

Пример:

  • Вход: [4, 4, 2, 3, 3, 2, 1]
  • Выход: [1, 2, 2, 3, 3, 4, 4]
  • Создайте функцию, которая принимает массив строк и возвращает новый массив, содержащий только уникальные значения (без дубликатов).

Пример:

  • Вход: ["apple", "banana", "apple", "orange", "banana"]
  • Выход: ["apple", "banana", "orange"]
  • Создайте функцию, которая принимает два массива и объединяет их, оставляя только те элементы, которые встречаются в обоих массивах.

Пример:

  • Вход: [1, 2, 3, 4] и [3, 4, 5, 6]
  • Выход: [3, 4]
  • Создайте функцию, которая принимает массив чисел и возвращает сумму только четных чисел.

Пример:

  • Вход: [1, 2, 3, 4, 5, 6]
  • Выход: 12
  • На вход дан массив с числами, разверните его в обратном порядке.

Пример:

  • Вход: [1, 2, 3, 4, 5]
  • Выход: [5, 4, 3, 2, 1]
  • Дан массив строк, проверьте значение apple существует в массиве.

Пример:

  • Вход: ["apple", "banana", "apple", "orange", "banana"]
  • Выход: +++ или ---
📝

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