Конструкция array(): объявление массивов в PHP
Использование конструкции array() в PHP
Основной способ создания массива в PHP – использование конструкции array(). Она позволяет создать как индексированный (списковый), так и ассоциативный массив. Пример создания простого индексированного массива:
<?php
$numbers = array(1, 2, 3, 4, 5);
print_r($numbers);
?>Php глобальные функции (глобальные функции в php)
Результат:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)функция return php (оператор return в функциях php)
Ключи автоматически назначаются, начиная с 0. Этот способ подходит для любых списков данных, где порядок важен.
Как создать пустой массив?
Для создания пустого массива достаточно вызвать array() без аргументов:
<?php
$empty = array();
var_dump($empty);
?>передача функции php (передача функции в качестве аргумента в php)
array(0) {}функция include php (подключение файлов с помощью include в php)
Пустые массивы часто используются как начальное значение для накопления данных.
Как создать ассоциативный массив?
Ассоциативный массив хранит пары «ключ => значение». Ключи могут быть строками или целыми числами:
<?php
$user = array('name' => 'Иван', 'age' => 30, 'city' => 'Москва');
print_r($user);
?>написать функцию php (создание функции в php)
Array
(
[name] => Иван
[age] => 30
[city] => Москва
)статическая функция php (статические методы в php)
Как создать многомерный массив?
Значениями массива могут быть другие массивы:
<?php
$matrix = array(
array(1, 2),
array(3, 4),
array(5, 6)
);
print_r($matrix);
?>Php функции даты (функции даты в php)
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 3
[1] => 4
)
[2] => Array
(
[0] => 5
[1] => 6
)
)функции работы с массивом php (функции для работы с массивами в php)
Как задать числовые ключи вручную?
Можно явно указать числовые ключи, в том числе непоследовательные:
<?php
$custom = array(0 => 'a', 2 => 'b', 4 => 'c');
print_r($custom);
?>функция array php (функция array() в php)
Array
(
[0] => a
[2] => b
[4] => c
)функция file php (функция file() в php)
Как комбинировать числовые и строковые ключи?
В одном массиве можно смешивать ключи разных типов:
<?php
$mixed = array('foo', 'bar' => 'baz', 42 => 'answer');
print_r($mixed);
?>функция get php (функция get() в php)
Array
(
[0] => foo
[bar] => baz
[42] => answer
)Php proc open (функция proc_open в php)
Какой синтаксис предпочтительнее: array() или []?
Начиная с PHP 5.4, можно использовать короткий синтаксис []. Он функционально идентичен array() и часто короче. Выбор зависит от стандартов кодирования в проекте:
<?php
$arr1 = array(1, 2, 3);
$arr2 = [1, 2, 3];
var_dump($arr1 === $arr2);
?>Php arguments (аргументы функций php)
bool(true)
Типичные проблемы и ошибки
- Пропуск запятой между элементами приводит к синтаксической ошибке.
- Попытка использовать
array()как функцию (например, вызовarray()внутри другого выражения без присваивания) недопустима – это конструкция, а не функция. - Если ключ не указан, PHP автоматически использует следующий целочисленный ключ на основе уже существующих целочисленных ключей, что может привести к неожиданным результатам при смешивании.
- При смешивании строковых и целочисленных ключей ключ
'0'эквивалентен0из-за приведения типов. - Попытка использовать
array()для создания массива из строки (например,array('hello')vsstr_split) –array()не разбивает строки.
Расширенные примеры использования array()
Пример 1: Создание и обход ассоциативного массива
<?php
$student = array(
'name' => 'Анна',
'grades' => array(5, 4, 5, 3)
);
foreach ($student as $key => $value) {
if (is_array($value)) {
echo $key . ': ' . implode(', ', $value) . PHP_EOL;
} else {
echo $key . ': ' . $value . PHP_EOL;
}
}
?>name: Анна grades: 5, 4, 5, 3
Пример 2: Использование array() для построения дерева категорий
<?php
$categories = array(
'electronics' => array(
'laptops' => array('Dell', 'HP'),
'phones' => array('iPhone', 'Samsung')
),
'clothing' => array(
'shirts' => array('T-shirt', 'Polo')
)
);
print_r($categories);
?>Array
(
[electronics] => Array
(
[laptops] => Array
(
[0] => Dell
[1] => HP
)
[phones] => Array
(
[0] => iPhone
[1] => Samsung
)
)
[clothing] => Array
(
[shirts] => Array
(
[0] => T-shirt
[1] => Polo
)
)
)Пример 3: Динамическое создание массива с помощью array() в цикле
<?php
$squares = array();
for ($i = 1; $i <= 5; $i++) {
$squares[] = $i * $i;
}
print_r($squares);
?>Array
(
[0] => 1
[1] => 4
[2] => 9
[3] => 16
[4] => 25
)Здесь $squares[] добавляет элемент в конец массива. Это сокращение от array_push($squares, ...).
Пример 4: Использование array() с list() для присваивания
<?php
$data = array('Иван', 25, 'Москва');
list($name, $age, $city) = $data;
echo 'Имя: ' . $name . ', Возраст: ' . $age . ', Город: ' . $city;
?>Имя: Иван, Возраст: 25, Город: Москва
Пример 5: Массив с отрицательными и нецелыми ключами
<?php
$weird = array(-10 => 'negative', 'a' => 'string', 3.5 => 'float');
print_r($weird);
?>Array
(
[-10] => negative
[a] => string
[3] => float
)Ключ с плавающей точкой 3.5 преобразуется в целое 3.
Пример 6: Создание массива с помощью array() и передача в функцию
<?php
function sumArray($arr) {
return array_sum($arr);
}
$numbers = array(10, 20, 30);
echo sumArray($numbers);
?>60
Пример 7: Использование array() для преобразования отдельных переменных в массив
<?php
$a = 1;
$b = 2;
$c = 3;
$arr = array($a, $b, $c);
print_r($arr);
?>Array
(
[0] => 1
[1] => 2
[2] => 3
)