Как создавать массивы в PHP

Раздел: PHP программирование -> Основы синтаксиса PHP

Создание массива в PHP: основные способы

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

В современном PHP (начиная с версии 5.4) предпочтительным считается синтаксис с квадратными скобками []. Он короче и интуитивно понятен.

Как создать пустой массив?

$emptyArray = [];

Assign php (присваивание в php)

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

$numbers = [10, 20, 30, 40];
// Результат: [0 => 10, 1 => 20, 2 => 30, 3 => 40]

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

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

$user = [
  'login' => 'alex',
  'email' => 'alex@example.com',
  'age'   => 25
];

тернарный оператор php (тернарный оператор php)

Пояснение

В первом примере создается пустой массив без элементов. Во втором – индексированный массив (ключи присваиваются автоматически, начиная с 0). В третьем – ассоциативный массив с именованными ключами.

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

Попытка использовать несуществующий ключ (например, $user['name'], если его нет) приведет к предупреждению Undefined array key в PHP 8.x. Используйте функцию isset() или оператор ?? для безопасного доступа.

Как создать массив с помощью функции array()?

$colors = array('red', 'green', 'blue');
$person = array('name' => 'Ivan', 'age' => 30);

Функция array() – классический способ, работает во всех версиях PHP, но синтаксис длиннее. Рекомендуется для поддержки старых проектов.

Проблема: при опечатке в ключе (например, 'naem' вместо 'name') ошибка не возникнет, но логика нарушится. Внимательно проверяйте имена ключей.

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

$scores = array_fill(0, 5, 0);
// Результат: [0 => 0, 1 => 0, 2 => 0, 3 => 0, 4 => 0]

Параметры: начальный индекс, количество элементов, значение. Удобно для создания массива с заданным размером.

Если передать отрицательный начальный индекс (array_fill(-2, 3, 'x')), ключи начнутся с -2, а не с 0.

Как создать последовательность чисел?
$even = range(2, 10, 2);
// Результат: [2, 4, 6, 8, 10]
$letters = range('a', 'e');
// Результат: ['a', 'b', 'c', 'd', 'e']

range() генерирует массив, заполненный элементами от начального до конечного значения с заданным шагом. Поддерживает числа и символы.

Для очень больших диапазонов (например, от 1 до 1000000) range() может потреблять много памяти. Рассмотрите генераторы.

Как разбить строку на массив?
$csv = 'apple,banana,cherry';
$fruits = explode(',', $csv);
// Результат: ['apple', 'banana', 'cherry']

explode() разделяет строку по разделителю. Обратная операция – implode().

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

Как создать массив из переменных?
$city = 'Moscow';
$country = 'Russia';
$data = compact('city', 'country');
// Результат: ['city' => 'Moscow', 'country' => 'Russia']

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

Если переменная не определена, PHP выдаст предупреждение, а в массиве будет null. Всегда проверяйте существование переменных.

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

1. Создание многомерного массива с помощью вложенных квадратных скобок

Пример
$matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9]
];
// Доступ: $matrix[1][2] -> 6
Результат: массив из трёх вложенных массивов.

2. Создание массива с ключами из одного массива и значениями из другого (array_combine)

Пример
$keys = ['username', 'email', 'role'];
$values = ['john', 'john@site.com', 'admin'];
$user = array_combine($keys, $values);
// Результат: ['username' => 'john', 'email' => 'john@site.com', 'role' => 'admin']
При разной длине массивов array_combine() вернёт false и вызовет предупреждение.

3. Создание массива с помощью list() для присваивания

Пример
list($a, $b, $c) = [10, 20, 30];
// $a = 10, $b = 20, $c = 30
// С PHP 7.1 можно использовать симметричный синтаксис:
[$d, $e, $f] = [40, 50, 60];
Переменные получают значения из массива.

4. Создание массива с помощью генератора (экономия памяти)

Пример
function generateNumbers($max) {
  for ($i = 1; $i <= $max; $i++) {
    yield $i;
  }
}
$generator = generateNumbers(5);
$array = iterator_to_array($generator);
// Результат: [1, 2, 3, 4, 5]
iterator_to_array() преобразует генератор в массив. Подходит для больших наборов данных.

5. Создание массива из строки по одному символу (str_split)

Пример
$word = 'PHP';
$chars = str_split($word);
// Результат: ['P', 'H', 'P']
Если второй параметр (длина фрагмента) не указан, делит по одному символу.

6. Создание массива с помощью array_fill_keys (заполнение ключей одним значением)

Пример
$keys = ['first', 'second', 'third'];
$filled = array_fill_keys($keys, 'default');
// Результат: ['first' => 'default', 'second' => 'default', 'third' => 'default']
Удобно для инициализации массива с заранее известными ключами.

7. Создание массива с помощью unpack() из бинарных данных

Пример
$binary = pack('C*', 72, 73, 74); // H, I, J
$array = unpack('C*', $binary);
// Результат: [1 => 72, 2 => 73, 3 => 74]
Ключи начинаются с 1, а не с 0. Удобно для работы с бинарными протоколами.

8. Создание массива с помощью array_replace для объединения с переопределением

Пример
$base = ['a' => 1, 'b' => 2];
$override = ['b' => 3, 'c' => 4];
$result = array_replace($base, $override);
// Результат: ['a' => 1, 'b' => 3, 'c' => 4]
array_replace() перезаписывает значения существующих ключей и добавляет новые.

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

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