Объявление массивов: полный разбор
Раздел: Работа с массивами в 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)