
В PHP массивы представляют собой упорядоченные коллекции данных, которые могут содержать значения различных типов. Для объявления массива используется функция array() или короткий синтаксис с квадратными скобками []. Пример: $fruits = [‘яблоко’, ‘банан’, ‘груша’]; – создаёт массив из трёх строковых элементов с автоматически присвоенными числовыми индексами.
Ассоциативные массивы позволяют использовать ключи любого скалярного типа вместо числовых индексов. Например: $user = [‘name’ => ‘Иван’, ‘age’ => 28, ’email’ => ‘ivan@example.com’];. Это упрощает доступ к данным по смысловым обозначениям и повышает читаемость кода.
PHP поддерживает многомерные массивы, где элементом массива может быть другой массив. Такой подход полезен для хранения структурированных данных, например таблиц или конфигурационных массивов. Пример: $matrix = [[1,2,3], [4,5,6], [7,8,9]]; позволяет работать с матрицей 3×3 через двойной индекс.
Для объявления пустого массива используют $data = [];, после чего можно динамически добавлять элементы с помощью оператора [] или присваивания по ключу. Этот метод эффективен при обработке данных из циклов или внешних источников.
При работе с массивами важно учитывать память и производительность: числовые индексы быстрее обрабатываются, а глубокие многомерные структуры могут увеличивать время выполнения. Планирование структуры массива заранее позволяет снизить накладные расходы и облегчить поддержку кода.
Объявление индексированных массивов через array() и []
![Объявление индексированных массивов через array() и []](/wp-content/images8/kak-obyavit-massiv-v-php-w33wbqlp.jpg)
Индексированные массивы в PHP содержат элементы, доступ к которым осуществляется по числовым индексам, начиная с нуля. Существует два способа их объявления: с помощью функции array() и короткого синтаксиса [].
Пример объявления через array():
$fruits = array("яблоко", "банан", "вишня");
- Элементы автоматически получают числовые индексы: 0, 1, 2.
- Поддерживается смешивание типов данных: строки, числа, булевы значения.
- Можно использовать вложенные массивы:
$matrix = array(array(1,2), array(3,4));
Пример объявления через короткий синтаксис []:
$fruits = ["яблоко", "банан", "вишня"];
- Рекомендуется для современных версий PHP (5.4+).
- Синтаксис компактнее и удобнее при добавлении элементов динамически:
$fruits[] = "груша"; - Поведение идентично
array(): индексы присваиваются автоматически.
Добавление элементов вручную с конкретным индексом:
$fruits[0] = "яблоко";
$fruits[1] = "банан";
- Позволяет контролировать порядок и пропуск индексов.
- Если индекс пропущен, PHP присвоит следующий числовой индекс автоматически.
Рекомендации при работе с индексированными массивами:
- Использовать
[]для новых проектов, чтобы код был более читаемым. - Не смешивать числовые и строковые ключи в одном массиве, чтобы избежать путаницы при переборе.
- При необходимости вложенных структур применять вложенные массивы для ясной логики данных.
- Использовать функцию
print_r()илиvar_dump()для проверки структуры массива при разработке.
Создание ассоциативных массивов с ключами и значениями

Ассоциативные массивы в PHP позволяют связывать уникальные ключи с конкретными значениями. Для их создания используется функция array() или синтаксис квадратных скобок.
Пример объявления массива с помощью array():
$user = array("name" => "Иван", "age" => 30, "city" => "Москва");
Аналогичный массив с использованием квадратных скобок:
$user = ["name" => "Иван", "age" => 30, "city" => "Москва"];
Ключи могут быть строками или целыми числами. Строковые ключи упрощают доступ к элементам и делают код более читаемым.
Для добавления нового элемента достаточно указать ключ и присвоить значение:
$user["email"] = "ivan@example.com";
Для проверки существования ключа используют функцию array_key_exists():
if (array_key_exists("age", $user)) { echo $user["age"]; }
Ассоциативные массивы эффективно применяются для хранения настроек, профилей пользователей и любых данных, где важно соотнесение конкретного значения с уникальным идентификатором.
Добавление элементов в уже существующий массив
В PHP элементы можно добавлять в массив несколькими способами. Для числовых массивов удобно использовать оператор []. Например:
$fruits = [‘яблоко’, ‘банан’];
$fruits[] = ‘апельсин’;
После выполнения $fruits будет содержать три элемента: ‘яблоко’, ‘банан’, ‘апельсин’. Этот способ автоматически присваивает следующему элементу индекс на единицу больше последнего.
Для добавления нескольких элементов одновременно применяется функция array_push(). Она принимает массив и один или несколько добавляемых элементов:
array_push($fruits, ‘груша’, ‘киви’);
Функция возвращает новое количество элементов массива. Для ассоциативных массивов добавление осуществляется напрямую через указание ключа:
$person[‘возраст’] = 30;
$person[‘город’] = ‘Москва’;
Если ключ уже существует, значение перезаписывается. Для объединения массивов используют оператор + или функцию array_merge():
$array1 = [‘a’ => 1];
$array2 = [‘b’ => 2];
$result = $array1 + $array2;
В результате $result будет содержать элементы обоих массивов. array_merge() подходит для добавления элементов без сохранения исходных ключей числовых массивов.
При работе с массивами важно контролировать индексы и ключи, чтобы избежать конфликтов и перезаписи данных. Использование функций и операторов зависит от структуры массива и требуемого результата.
Объявление многомерных массивов и доступ к элементам

$matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ];
В этом примере $matrix – двумерный массив с тремя строками и тремя столбцами. Доступ к элементу осуществляется через последовательные индексы: $matrix[0][2] вернёт 3.
Для ассоциативных многомерных массивов ключи могут быть строковыми. Например:
$users = [ 'john' => ['age' => 25, 'city' => 'Moscow'], 'anna' => ['age' => 30, 'city' => 'Saint Petersburg'] ];
Доступ к элементу выполняется через цепочку ключей: $users['anna']['city'] вернёт 'Saint Petersburg'.
PHP позволяет смешивать числовые и ассоциативные массивы в одной структуре, что удобно для сложных данных:
$data = [ 'points' => [10, 20, 30], 'users' => ['alice' => ['score' => 50]] ];
Для добавления элемента достаточно указать новый индекс или ключ: $matrix[1][3] = 10; или $users['bob'] = ['age' => 22, 'city' => 'Kazan'];.
При переборе многомерного массива используются вложенные циклы foreach. Например, для двумерного массива:
foreach ($matrix as $row) { foreach ($row as $value) { echo $value; } }
Рекомендация: придерживаться одинакового типа индексов внутри уровня массива и избегать излишне глубокой вложенности для удобства чтения и поддержки кода.
Использование функций range() и array_fill() для инициализации массивов
Функция range() создаёт массив с последовательностью чисел или символов. Синтаксис: range(начало, конец, шаг). Параметр шаг необязательный и по умолчанию равен 1. Пример:
$numbers = range(5, 15); – создаст массив с числами от 5 до 15 включительно.
range() позволяет использовать отрицательные и дробные шаги, например:
$values = range(0, 1, 0.2); – массив [0, 0.2, 0.4, 0.6, 0.8, 1].
Для строк range() формирует последовательность символов по алфавиту: $letters = range('a', 'f'); – [‘a’,’b’,’c’,’d’,’e’,’f’].
Функция array_fill() заполняет массив одинаковым значением. Синтаксис: array_fill(начальный_ключ, количество, значение). Пример:
$zeros = array_fill(0, 5, 0); – массив [0, 0, 0, 0, 0] с ключами от 0 до 4.
array_fill() поддерживает отрицательные ключи: $negKeys = array_fill(-3, 4, 'x'); – ключи от -3 до 0, значения ‘x’.
Для комбинированного использования range() и array_fill() удобно создавать массивы с определённой длиной и последовательностью значений, а затем заменять элементы по шаблону:
$arr = array_fill(0, count(range(1,10)), 100); – массив из 10 элементов со значением 100, соответствующий длине range(1,10).
Эти функции повышают читаемость кода и упрощают инициализацию массивов без ручного перечисления элементов.
Проверка существования ключа и элемента в массиве
Для проверки наличия ключа в массиве используется функция array_key_exists(). Она принимает два параметра: ключ и массив, возвращая true, если ключ найден, и false в противном случае.
Пример:
$users = ['id' => 101, 'name' => 'Иван'];
if (array_key_exists('name', $users)) { echo 'Ключ name существует'; }
Для проверки наличия значения используется функция in_array(). Она проверяет, присутствует ли элемент в массиве, с опциональной строгой проверкой типа.
Пример:
$fruits = ['яблоко', 'банан', 'груша'];
if (in_array('банан', $fruits, true)) { echo 'Элемент найден'; }
Для ассоциативных массивов сочетание array_key_exists() и in_array() позволяет точно определить, существует ли конкретный ключ с определённым значением:
if (array_key_exists('id', $users) && $users['id'] === 101) { echo 'Ключ id с нужным значением найден'; }
Для быстрого определения только существования элемента или ключа в больших массивах рекомендуется использовать встроенные функции, а не ручные циклы, так как они оптимизированы и обеспечивают минимальное время выполнения.
Преобразование строки в массив с помощью explode() и str_split()

В PHP строки можно разбивать на массивы двумя основными способами: с помощью функций explode() и str_split(). Каждая из них решает конкретные задачи и имеет свои нюансы.
Функция explode() разделяет строку на части по заданному разделителю. Синтаксис:
array explode(string $delimiter, string $string, int $limit = PHP_INT_MAX)
Рекомендации по использованию:
- Используйте
explode(), когда нужно разделить строку по символам или последовательностям, например, запятой или пробелу. - Третий параметр
$limitпозволяет ограничить количество элементов в массиве. При отрицательном значении последние элементы объединяются.
Пример разделения строки с адресами электронной почты:
$emails = "user1@mail.com,user2@mail.com,user3@mail.com";
$array = explode(",", $emails);
// Результат: ['user1@mail.com', 'user2@mail.com', 'user3@mail.com']
Функция str_split() преобразует строку в массив, разбивая её на символы или блоки фиксированной длины. Синтаксис:
array str_split(string $string, int $length = 1)
Рекомендации по использованию:
- Используйте
str_split(), когда требуется работать с отдельными символами или равными блоками символов. - Параметр
$lengthзадаёт размер каждого блока. Если не указан, каждый символ превращается в отдельный элемент массива.
Пример разбиения строки на символы:
$text = "PHP";
$array = str_split($text);
// Результат: ['P', 'H', 'P']
Пример разбиения строки на блоки длиной 2 символа:
$text = "123456";
$array = str_split($text, 2);
// Результат: ['12', '34', '56']
Выбор между explode() и str_split() зависит от задачи: для разделителей выбирайте explode(), для равномерного разбиения – str_split(). Использование этих функций ускоряет обработку строк и упрощает работу с массивами.
Объединение и слияние массивов через array_merge() и +

В PHP существуют два основных способа объединять массивы: функция array_merge() и оператор +. Они отличаются по поведению с индексированными и ассоциативными массивами, поэтому важно понимать нюансы их работы.
array_merge() объединяет массивы, перезаписывая значения с одинаковыми ключами для ассоциативных массивов и перенумеровывая индексированные массивы:
Пример:
| Код | Результат |
|---|---|
$a = [1, 2]; $b = [3, 4]; $result = array_merge($a, $b); print_r($result); |
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) |
$a = ['x' => 10, 'y' => 20]; $b = ['y' => 30, 'z' => 40]; $result = array_merge($a, $b); print_r($result); |
Array ( [x] => 10 [y] => 30 [z] => 40 ) |
Особенность array_merge() – индексированные массивы не сохраняют оригинальные ключи, а ассоциативные ключи перезаписываются последующими массивами.
Оператор + объединяет массивы, сохраняя ключи и не перезаписывая значения с совпадающими ключами:
Пример:
| Код | Результат |
|---|---|
$a = ['x' => 10, 'y' => 20]; $b = ['y' => 30, 'z' => 40]; $result = $a + $b; print_r($result); |
Array ( [x] => 10 [y] => 20 [z] => 40 ) |
$a = [1, 2]; $b = [3, 4]; $result = $a + $b; print_r($result); |
Array ( [0] => 1 [1] => 2 ) |
Рекомендации по выбору метода:
- Используйте
array_merge(), когда требуется объединить массивы с индексами и получить последовательный перечень элементов. - Используйте
+, когда важно сохранить значения исходного массива с совпадающими ключами. - Для многократного объединения ассоциативных массивов с сохранением ключей оператор
+часто эффективнее и предсказуемее.
Для глубоких или вложенных массивов следует комбинировать методы с рекурсивными функциями или array_merge_recursive(), чтобы не потерять данные при совпадении ключей.
Вопрос-ответ:
Какие способы создания массивов существуют в PHP?
В PHP массив можно создать двумя основными способами. Первый — с помощью функции array(), например: $arr = array(1, 2, 3);. Второй способ — с использованием короткого синтаксиса с квадратными скобками: $arr = [1, 2, 3];. Оба метода позволяют хранить в массиве любые типы данных, включая числа, строки и даже другие массивы.
Как объявить ассоциативный массив и чем он отличается от обычного индексного?
Ассоциативный массив отличается тем, что ключами в нем могут быть строки, а не только числа. Объявляется он с помощью функции array() или квадратных скобок. Например: $user = ["name" => "Иван", "age" => 30];. В отличие от обычного индексного массива, где доступ к элементу идет через числовой индекс, здесь элементы извлекаются по строковому ключу, что делает код более наглядным при работе с данными, имеющими смысловые названия.
Можно ли создавать пустые массивы и как их заполнять после объявления?
Да, пустой массив создается очень просто: $arr = []; или $arr = array();. После этого элементы добавляются с помощью оператора квадратных скобок, например: $arr[] = 10; или $arr[] = "текст";. Также можно присвоить элемент с конкретным ключом: $arr["ключ"] = "значение";. Такой подход позволяет формировать массив постепенно по мере поступления данных.
Как создать многомерный массив и как получить доступ к его элементам?
Многомерный массив — это массив, который содержит другие массивы в качестве элементов. Например: $matrix = [[1, 2], [3, 4]];. Чтобы обратиться к конкретному элементу, указываются все уровни индексов: $matrix[0][1] вернет 2. Многомерные массивы полезны для хранения таблиц данных, сложных структур или списков с подкатегориями.
