Массивы в PHP — это основной инструмент для работы с данными. Они позволяют хранить и упорядочивать несколько значений в одной переменной. Независимо от того, работаете ли вы с небольшими наборами данных или создаете большие приложения, знание массивов и методов их обработки сделает вашу работу проще.
Массив — это структура данных, которая позволяет хранить несколько значений в одной переменной. Эти значения могут быть разных типов: числа, строки, другие массивы и даже объекты. Каждое значение массива хранится под своим индексом или ключом.
(или индексированные массивы) хранят элементы в виде списка, где каждому элементу присваивается числовой индекс начиная с 0.
$fruits = ["apple", "banana", "cherry"];
Ассоциативные массивы позволяют присваивать каждому элементу уникальный ключ вместо числового индекса.
$person = ["name" => "John", "age" => 30, "city" => "New York"];
Многомерные массивы — это массивы, которые содержат другие массивы в качестве своих элементов. Их можно использовать для хранения более сложных структур данных.
$matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
Массивы в PHP создаются двумя основными способами:
Использование квадратных скобок.
$colors = ["red", "green", "blue"];
Использование функции array()
.
$numbers = array(1, 2, 3, 4, 5);
Краткий синтаксис через квадратные скобки — наиболее популярный и удобный способ создания массивов в современных версиях PHP.
Для добавления элементов в массив можно использовать несколько методов.
Добавление в конец массива с помощью квадратных скобок.
$fruits[] = "orange";
Функция array_push()
добавляет один или несколько элементов в конец массива.
array_push($fruits, "mango", "pineapple");
Функция array_unshift()
добавляет элементы в начало массива.
array_unshift($fruits, "strawberry");
PHP также предоставляет несколько способов удаления элементов из массива.
Удаление элемента по индексу или ключу с помощью unset()
.
unset($fruits[0]);
Удаление последнего элемента с помощью функции array_pop()
. Функция возвращает удаленный элемент. Её используют, чтобы работать с массивами, как со стеком.
array_pop($fruits);
Удаление первого элемента с помощью array_shift()
.
array_shift($fruits);
Чтобы изменить элемент массива, достаточно обратиться к нему по индексу или ключу и присвоить новое значение.
$fruits[1] = "pear"; // Изменение второго элемента массива
В ассоциативных массивах обновление происходит аналогично.
$person["age"] = 31; // Обновление значения по ключу
Для доступа к элементам массива также используется синтаксис квадратных скобок.
echo $fruits[2]; // Выводит "cherry"
Для ассоциативных массивов ключи используются так же, как индексы.
echo $person["name"]; // Выводит "John"
foreach
.Наиболее популярный способ обхода массивов в PHP — это цикл foreach
. Он позволяет легко работать с каждым элементом массива поочередно.
foreach ($fruits as $fruit) {
echo $fruit . "<br>";
}
Если нужно работать не только с элементами, но и с ключами (что актуально для ассоциативных массивов), можно использовать следующий синтаксис:
foreach ($person as $key => $value) {
echo "$key: $value<br>";
}
for
.Цикл for
используется для работы с индексированными массивами, когда вам нужно контролировать индексы элементов:
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits[$i] . "<br>";
}
array_map()
.Эта функция позволяет применить пользовательскую функцию к каждому элементу массива и вернуть новый массив с измененными элементами:
$upperFruits = array_map("strtoupper", $fruits);
array_walk()
.array_walk()
более гибкая функция, которая позволяет изменять элементы массива прямо внутри оригинального массива.
array_walk($fruits, function(&$fruit) {
$fruit = strtoupper($fruit);
});
PHP предоставляет различные функции для сортировки массивов.
sort()
сортирует массив по возрастанию значений.sort($fruits);
rsort()
сортирует массив по убыванию.rsort($fruits);
asort()
сортирует ассоциативный массив по значению, сохраняя ключи.asort($person);
ksort()
сортирует ассоциативный массив по ключам.ksort($person);
usort()
позволяет задавать свою функцию сравнения элементов.usort($fruits, function($a, $b) {
return strlen($a) - strlen($b);
});
Чтобы отфильтровать массив на основе условий, можно использовать функцию array_filter()
.
$filteredFruits = array_filter($fruits, function($fruit) {
return strlen($fruit) > 5;
});
PHP предлагает несколько полезных функций для поиска.
in_array()
проверяет, существует ли значение в массиве.if (in_array("apple", $fruits)) {
echo "Apple is in the array.";
}
array_search()
возвращает ключ элемента, если он найден.$key = array_search("banana", $fruits);
array_key_exists()
проверяет, существует ли определенный ключ в массиве.if (array_key_exists("name", $person)) {
echo "Name is set.";
}
array_merge()
объединяет два или более массива в один.$allFruits = array_merge($fruits, ["grape", "peach"]);
array_chunk()
разбивает массив на несколько частей.$chunks = array_chunk($fruits, 2);
Массивы в PHP — это важный инструмент, который значительно упрощает работу с данными. В статье мы рассмотрели, как создавать массивы, добавлять и удалять элементы, сортировать и фильтровать массивы. Понимание этих основ поможет вам легко управлять данными в ваших PHP-приложениях. Если вы хотите изучить массивы и другие основы работы в PHP, для вас - курс “Основы PHP” от Хекслета.