0 знаков
18. Функции массивов в 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)); // Распечатает массив с двумя рандомных элемента
?>
В целом, нет смысла переписывать и демонстрировать все функции. Перейдите на [ссылка доступна авторизованным пользователям], где вы можете ознакомиться со всеми существующими функциями и посмотреть примеры. Даже если вы что-то забудете, всегда можно подсмотреть. Поверьте, все программисты иногда забывают нужную функцию; главное — помнить, где можно быстро найти необходимую информацию. В следующем уроке познакомимся с рекурсией.
Задания
1. Создайте функцию, которая принимает массив чисел и возвращает массив чисел, отсортированных по их частоте появления. Если два числа имеют одинаковую частоту, они должны быть отсортированы по возрастанию.
Пример:
- Вход:
[4, 4, 2, 3, 3, 2, 1]
- Выход:
[1, 2, 2, 3, 3, 4, 4]
2. Создайте функцию, которая принимает массив строк и возвращает новый массив, содержащий только уникальные значения (без дубликатов).
Пример:
- Вход:
["apple", "banana", "apple", "orange", "banana"]
- Выход:
["apple", "banana", "orange"]
3. Создайте функцию, которая принимает два массива и объединяет их, оставляя только те элементы, которые встречаются в обоих массивах.
Пример:
- Вход:
[1, 2, 3, 4]
и[3, 4, 5, 6]
- Выход:
[3, 4]
4. Создайте функцию, которая принимает массив чисел и возвращает сумму только четных чисел.
Пример:
- Вход:
[1, 2, 3, 4, 5, 6]
- Выход:
12
5. На вход дан массив с числами, разверните его в обратном порядке.
Пример:
- Вход:
[1, 2, 3, 4, 5]
- Выход:
[5, 4, 3, 2, 1]
6. Дан массив строк, проверьте значение apple
существует в массиве.
Пример:
- Вход:
["apple", "banana", "apple", "orange", "banana"]
- Выход:
+++
или---
Похожие уроки Codebra
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ
Подписывайся на наш Telegram-канал!
Новости, полезный материал,
программирование и ИБ