Массивы в PHP: основы создания и практические примеры

Раздел: PHP основы -> Работа с массивами

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

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

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

Начиная с PHP 5.4 наиболее удобным и часто используемым способом является квадратные скобки []. Этот синтаксис короче и читается легче.


// Пустой массив
$arr = [];

// Массив с элементами (индексный)
$colors = ['red', 'green', 'blue'];

// Ассоциативный массив
$user = ['name' => 'Иван', 'age' => 30];
  

отсортировать массив по значению php (сортировка массива по значению php)

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

Если используется версия PHP ниже 5.4, синтаксис [] вызовет синтаксическую ошибку. Решение - использовать функцию array() или обновить PHP.

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

Традиционный способ, работающий во всех версиях PHP. Подходит для поддержки старых проектов.


// Пустой массив
$arr = array();

// Индексный массив
$fruits = array('apple', 'banana', 'orange');

// Ассоциативный массив
$person = array('name' => 'Петр', 'city' => 'Москва');
  

цикл значений php (цикл по массиву в php)

Распространенная проблема

Пропущенная точка с запятой после объявления массива приводит к синтаксической ошибке. Всегда проверяйте конец инструкции.

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

Можно явно указать ключи при объявлении.


$items = [5 => 'five', 10 => 'ten', 15 => 'fifteen'];
  

Php получить индекс (получение индекса массива в php)

Если некоторые ключи пропущены, следующий индекс будет на единицу больше максимального существующего.

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

Массивы могут содержать другие массивы как элементы.


$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

$users = [
    ['name' => 'Анна', 'age' => 25],
    ['name' => 'Борис', 'age' => 32]
];
  

Php значение массива в строку (преобразование массива в строку php)

Ошибка при обращении

При неправильной вложенности скобок можно получить неожиданный результат. Используйте var_dump($matrix) для проверки структуры.

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

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


$arr = [1, 2, 3];
$arr[] = 4; // теперь [1, 2, 3, 4]
  

Php есть ли значение в массиве (поиск значения в массиве php)

Для ассоциативных массивов указывается новый ключ.


$user = ['name' => 'Ольга'];
$user['email'] = 'olga@example.com';
  

Возможная путаница

Если случайно использовать [] с неинициализированным массивом, PHP создаст новый массив, но может выдать предупреждение в строгих режимах. Лучше сначала объявить массив.

- Php массивы получить первый элемент (получение первых элементов массива в php)
- Php между значениями (выборка значений массива в диапазоне php)
- Php значения ассоциативного массива (получение значений из ассоциативного массива php)

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

Создание массива из строки с помощью explode

Пример

$csv = 'apple,banana,cherry';
$fruits = explode(',', $csv);
print_r($fruits);
Array
(
    [0] => apple
    [1] => banana
    [2] => cherry
)

Создание массива с диапазоном чисел (range)

Пример

$numbers = range(1, 10, 2); // шаг 2
print_r($numbers);
Array
(
    [0] => 1
    [1] => 3
    [2] => 5
    [3] => 7
    [4] => 9
)

Заполнение массива одним значением (array_fill)

Пример

$filled = array_fill(0, 5, 'default');
print_r($filled);
Array
(
    [0] => default
    [1] => default
    [2] => default
    [3] => default
    [4] => default
)

Комбинирование двух массивов в ассоциативный (array_combine)

Пример

$keys = ['name', 'age', 'city'];
$values = ['Иван', 28, 'Киев'];
$person = array_combine($keys, $values);
print_r($person);
Array
(
    [name] => Иван
    [age] => 28
    [city] => Киев
)

Проблема несоответствия длин массивов

Если количество ключей и значений различается, array_combine вернет false и выдаст предупреждение. Перед использованием стоит проверить длины.

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

Пример

$name = 'Алексей';
$age = 35;
$city = 'Санкт-Петербург';
$data = compact('name', 'age', 'city');
print_r($data);
Array
(
    [name] => Алексей
    [age] => 35
    [city] => Санкт-Петербург
)

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

Создание массива с помощью переменного количества аргументов (variadic)

Пример

function makeArray(...$args) {
    return $args;
}
$result = makeArray(1, 'two', 3.0);
print_r($result);
Array
(
    [0] => 1
    [1] => two
    [2] => 3
)

Этот способ позволяет собрать все переданные аргументы в массив. Полезно при написании гибких функций.

Создание массива с помощью оператора spread в литерале

Пример

$base = [1, 2, 3];
$extended = [...$base, 4, 5];
print_r($extended);
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Начиная с PHP 7.4 оператор ... распаковывает массив внутри литерала. Это удобно для объединения массивов без вызова array_merge.

Ошибка при использовании spread со строковыми ключами

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

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

En
Php new array (php)