Объявление массивов: полный разбор

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

Основные способы объявления массивов

В PHP существует несколько способов объявления массивов. Наиболее эффективным и современным считается использование короткого синтаксиса квадратных скобок [], доступного с PHP 5.4. Этот способ лаконичен, быстрее выполняется и менее подвержен синтаксическим ошибкам.

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

Пример:

<?php
$fruits = ['apple', 'banana', 'orange'];
?>

Php объявление массива (объявление массива в php)

Можно сразу указать ассоциативные ключи:

<?php
$user = ['name' => 'Иван', 'age' => 25];
?>
Типичные ошибки: забытая запятая между элементами, неверный синтаксис для ключей (например, использование = вместо =>).
Решение: проверять закрытие каждой строки запятой и использовать правильный оператор =>.

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

Этот способ устарел, но всё ещё широко используется в коде на PHP 5.3 и ниже.

<?php
$colors = array('red', 'green', 'blue');
?>

Ассоциативный вариант:

<?php
$product = array('id' => 101, 'price' => 49.99);
?>
Проблема: при большом количестве элементов код становится громоздким. Рекомендуется переходить на [].

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

Пустой массив можно объявить обоими способами:

<?php
$empty1 = [];
$empty2 = array();
?>
Ошибка новичков: попытка добавить элемент без предварительной инициализации – это разрешено, но лучше явно объявить пустой массив для ясности.

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

Массивы могут содержать другие массивы:

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

$assoc_users = [
    'admin' => ['name' => 'Petr', 'role' => 'editor'],
    'guest' => ['name' => 'Olga', 'role' => 'viewer']
];
?>
Важно: следить за вложенностью скобок – пропущенная скобка вызывает синтаксическую ошибку. Используйте отступы для читаемости.

Как задать ключи смешанного типа?

Ключи могут быть строками или целыми числами, но не могут быть массивами или объектами.

<?php
$mixed = [
    0 => 'ноль',
    'key1' => 100,
    1 => 'один'
];
?>
Частая ошибка: попытка использовать true или false в качестве ключа – они автоматически преобразуются к 1 и 0 соответственно, что может привести к неожиданному поведению.

Расширенные примеры объявления массивов

Объявление массива с использованием переменных и выражений

Пример
<?php
$a = 10;
$b = 20;
$numbers = [$a, $b, $a + $b, sqrt(25)];
print_r($numbers);
?>
Array
(
    [0] => 10
    [1] => 20
    [2] => 30
    [3] => 5
)

Объявление массива с неинкрементальными целочисленными ключами

Пример
<?php
$odd = [1 => 'one', 3 => 'three', 5 => 'five'];
// PHP автоматически не упорядочивает ключи
print_r($odd);
?>
Array
(
    [1] => one
    [3] => three
    [5] => five
)

Объявление массива с константами в ключах

Пример
<?php
define('STATUS_ACTIVE', 1);
define('STATUS_PENDING', 2);
$statuses = [STATUS_ACTIVE => 'активен', STATUS_PENDING => 'ожидает'];
print_r($statuses);
?>
Array
(
    [1] => активен
    [2] => ожидает
)

Объявление массива с помощью короткого синтаксиса в конструкции foreach

Пример
<?php
foreach ([1, 2, 3, 4] as $num) {
    echo $num * 2 . ' ';
}
?>
2 4 6 8

Объявление многомерного ассоциативного массива со сложной структурой

Пример
<?php
$config = [
    'database' => [
        'host' => 'localhost',
        'port' => 3306,
        'credentials' => ['user' => 'root', 'pass' => 'secret']
    ],
    'cache' => ['type' => 'redis', 'prefix' => 'app_']
];
echo $config['database']['credentials']['user'];
?>
root

Объявление массива с ключами, содержащими пробелы

Пример
<?php
$item = ['item name' => 'Книга', 'item price' => 500];
echo $item['item name'];
?>
Книга
Примечание: ключи с пробелами требуют обязательного заключения в кавычки. Доступ к таким элементам возможен только через фигурные скобки или квадратные скобки с кавычками.

Объявление массива с числовыми ключами, начинающимися с нуля, но со смещением

Пример
<?php
$array = [-5 => 'минус пять', -3 => 'минус три', 0 => 'ноль', 2 => 'два'];
ksort($array);
print_r($array);
?>
Array
(
    [-5] => минус пять
    [-3] => минус три
    [0] => ноль
    [2] => два
)

Объявление массива в PHP - comments

En
Php объявление массива (php)