Массивы в PHP: подробный гид по созданию и инициализации

Раздел: Массивы в PHP -> Инициализация массивов

Массивы в PHP - это упорядоченные структуры данных, которые могут содержать элементы разных типов. Для начала работы с массивом его необходимо задать (инициализировать). Существует несколько способов, каждый из которых подходит для определенных задач. Ниже рассматриваются основные варианты.

Основные методы инициализации массивов

Как создать массив с помощью квадратных скобок?

Начиная с PHP 5.4 наиболее эффективный и компактный способ - использование синтаксиса []. Он короче, быстрее и читаемее.

$arr = ['apple', 'banana', 'cherry'];

Php задать массив (задание массива в php)

Array ( [0] => apple [1] => banana [2] => cherry )

Этот синтаксис подходит для создания индексированных, ассоциативных и многомерных массивов. Рекомендуется для всех современных проектов.

Типичная ошибка:

Использование [] в PHP версии ниже 5.4 вызывает синтаксическую ошибку. Решение: использовать array() или обновить интерпретатор.

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

Как задать массив традиционным способом array()?

Функция array() доступна во всех версиях PHP и является универсальным способом создания массива.

$arr = array('red', 'green', 'blue');
Array ( [0] => red [1] => green [2] => blue )

Цель: обратная совместимость, явное указание на массив. Хорошо подходит для кода, который должен работать на старых версиях PHP.

Ошибок практически нет, но запись длиннее, и при большом количестве элементов снижается читаемость.

Как создать массив путем добавления элементов без указания индекса?

Синтаксис $arr[] = value автоматически добавляет элемент в конец массива, создавая его, если он не существовал.

$arr = [];
$arr[] = 'first';
$arr[] = 'second';
Array ( [0] => first [1] => second )

Используется для динамического построения массива, когда точное количество элементов неизвестно. Например, при переборе результатов из базы данных.

Если переменная не была инициализирована как массив, оператор [] создаст предупреждение (Notice) и преобразует переменную в массив. Всегда лучше явно инициализировать массив (например, $arr = []).

Как быстро создать массив чисел из диапазона?

Функция range() возвращает массив, содержащий последовательность чисел или символов.

$numbers = range(1, 5);
$letters = range('a', 'c');
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Array ( [0] => a [1] => b [2] => c )

Удобно для создания тестовых данных или перебора значений. Третий параметр позволяет задать шаг.

При использовании с большими диапазонами может потреблять много памяти. Для последовательностей лучше использовать генераторы (yield).

Как преобразовать строку в массив по разделителю?

Функция explode() разбивает строку на части и возвращает массив строк.

$str = 'one,two,three';
$arr = explode(',', $str);
Array ( [0] => one [1] => two [2] => three )

Цель: парсинг CSV-данных, URL-параметров, логирование. Обратная операция - implode().

Если разделитель не найден, возвращается массив с одним элементом - исходной строкой. Пустая строка при разбиении даст массив с одним пустым элементом.

Как создать ассоциативный массив из переменных?

Функция compact() создает массив, где ключами являются имена переменных, а значениями - их значения.

$name = 'Alice';
$age = 30;
$arr = compact('name', 'age');
Array ( [name] => Alice [age] => 30 )

Используется для передачи набора переменных в функцию или шаблон без ручного указания ключей. Удобно при работе с формами.

Если переменная не определена, compact() проигнорирует её (без ошибки). Проверка существования переменной ложится на программиста.

Как заполнить массив заданным значением определенное количество раз?

Функция array_fill() создает массив, заполненный указанным значением, начиная с заданного индекса и с заданным количеством элементов.

$arr = array_fill(0, 3, 'default');
Array ( [0] => default [1] => default [2] => default )

Применяется для инициализации массивов с одинаковыми значениями (например, для счётчиков).

Нельзя заполнить отрицательным количеством (ошибка). Также если указан стартовый индекс, массив будет разреженным, что может привести к неожиданному поведению при итерации.

Как создать массив, используя ключи из одного массива и значения из другого?

Функция array_combine() объединяет два массива: первый становятся ключами, второй - значениями.

$keys = ['name', 'age'];
$values = ['Bob', 25];
$arr = array_combine($keys, $values);
Array ( [name] => Bob [age] => 25 )

Удобно для создания ассоциативного массива из двух отдельных списков.

Оба массива должны иметь одинаковое количество элементов, иначе false и предупреждение. Также ключи должны быть уникальными, иначе последний перезапишет предыдущий.

Как присвоить элементы массива отдельным переменным?

Конструкция list() (или [] начиная с PHP 7.1) позволяет извлечь значения массива в переменные.

$info = ['Alice', 30];
list($name, $age) = $info;
// или [$name, $age] = $info;

Цель: быстрая деструктуризация, особенно при работе с функциями, возвращающими массивы.

Если количество переменных больше, чем элементов, неприсвоенные переменные получат null. При использовании list() с ассоциативными массивами (PHP 7.1+) требуется явное указание ключей.

Расширенные примеры задания массивов

Ниже представлены менее распространенные, но полезные техники инициализации массивов.

Создание массива с помощью array_fill_keys

Функция array_fill_keys() заполняет массив значениями, используя указанные ключи.

Пример
$keys = ['a', 'b', 'c'];
$arr = array_fill_keys($keys, 0);
Array ( [a] => 0 [b] => 0 [c] => 0 )

Применяется для инициализации ассоциативного массива с одинаковыми значениями для каждого ключа.

Дополнение массива до нужной длины с array_pad

array_pad() дополняет массив до заданной длины указанным значением.

Пример
$arr = ['x', 'y'];
$padded = array_pad($arr, 5, 'z');
Array ( [0] => x [1] => y [2] => z [3] => z [4] => z )

Полезно, когда требуется гарантировать минимальное количество элементов.

Создание подмассива с array_slice

Извлечение части массива функцией array_slice().

Пример
$original = [1,2,3,4,5];
$slice = array_slice($original, 1, 2);
Array ( [0] => 2 [1] => 3 )

Используется для получения диапазона элементов, например, для пагинации.

Многомерные массивы с использованием квадратных скобок

Создание двумерного массива в одну строку.

Пример
$matrix = [
    [1, 2],
    [3, 4]
];
Array ( [0] => Array ( [0] => 1 [1] => 2 ) [1] => Array ( [0] => 3 [1] => 4 ) )

Короткий синтаксис особенно удобен для вложенных структур.

Динамическое создание массива с помощью цикла и []

Часто массив формируется в процессе итерации.

Пример
$results = [];
foreach ([10, 20, 30] as $value) {
    $results[] = $value * 2;
}
Array ( [0] => 20 [1] => 40 [2] => 60 )

Это стандартный паттерн для трансформации данных.

Создание массива с помощью генератора (yield) и iterator_to_array

Генераторы экономят память при больших последовательностях, но их можно преобразовать в массив.

Пример
function generateNumbers($max) {
    for ($i = 1; $i <= $max; $i++) {
        yield $i;
    }
}
$arr = iterator_to_array(generateNumbers(5));
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )

Гибкий способ для ленивых вычислений с возможностью создания массива при необходимости.

Использование array_merge для объединения нескольких массивов

array_merge() создает новый массив из переданных.

Пример
$a = [1, 2];
$b = [3, 4];
$merged = array_merge($a, $b);
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

Позволяет комбинировать данные из разных источников. Важно: числовые ключи переиндексируются.

Создание ассоциативного массива с помощью array_map и array_combine

Например, преобразовать список ключей и список значений через callback.

Пример
$keys = ['id', 'name'];
$values = [1, 'Alice'];
$arr = array_combine($keys, array_map('strval', $values));
// или более сложный вариант с кастомной функцией

Редко используется в чистом виде, но демонстрирует гибкость.

задание массива в PHP - comments

En
Php задать массив (php)