Индексированные и ассоциативные массивы
Создавайте и используйте оба типа массивов PHP.
«Индексированные и ассоциативные массивы» — бесплатный урок PHP Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Массивы в PHP
Массивы PHP — это упорядоченные отображения: они могут использоваться как списки, словари, стеки и очереди. Есть два основных вида:
- Индексированные массивы — числовые ключи (0, 1, 2…)
- Ассоциативные массивы — строковые ключи
Создание индексированных массивов
Используйте короткий синтаксис массива [] или array():
<?php
$colors = ['red', 'green', 'blue']; // short syntax
$nums = array(10, 20, 30); // long syntax
echo $colors[0]; // red
echo $nums[2]; // 30
echo count($colors); // 3Добавление и удаление элементов
Добавляйте элементы с помощью [], удаляйте с помощью unset():
<?php
$items = ['a', 'b', 'c'];
$items[] = 'd'; // append
$items[] = 'e';
unset($items[1]); // remove 'b'
print_r($items);
// [0=>'a', 2=>'c', 3=>'d', 4=>'e'] — index gap!Ассоциативные массивы
Используйте строковые ключи, чтобы создать структуру, похожую на словарь:
<?php
$person = [
'name' => 'Alice',
'age' => 30,
'email' => 'alice@example.com',
];
echo $person['name']; // Alice
$person['city'] = 'London'; // add new key
unset($person['email']); // remove keyПроверка существования ключа
Проверьте, существует ли ключ или значение в массиве:
<?php
$config = ['debug' => false, 'version' => '2.0'];
var_dump(array_key_exists('debug', $config)); // true
var_dump(isset($config['debug'])); // false! debug=false, not NULL
var_dump(in_array('2.0', $config)); // truearray_key_exists и isset
isset() возвращает false для ключей со значениями NULL; array_key_exists() возвращает true даже для значений NULL:
<?php
$data = ['key' => null];
var_dump(isset($data['key'])); // false
var_dump(array_key_exists('key', $data)); // trueРаспаковка массива
Распаковывайте массивы в переменные с помощью короткого синтаксиса списка:
<?php
$point = [10, 20, 30];
[$x, $y, $z] = $point;
echo "x=$x y=$y z=$z"; // x=10 y=20 z=30
// Skip elements
[, $second] = [1, 2, 3];
echo $second; // 2Объединение массивов
Объединяйте массивы с помощью array_merge() или оператора распаковки:
<?php
$a = ['x' => 1, 'y' => 2];
$b = ['y' => 99, 'z' => 3];
$merged = array_merge($a, $b);
print_r($merged); // x=>1, y=>99 (b overwrites), z=>3
$union = $a + $b;
print_r($union); // x=>1, y=>2 (a wins), z=>3Срезы массивов
Извлекайте часть массива с помощью array_slice():
<?php
$letters = ['a', 'b', 'c', 'd', 'e'];
$slice = array_slice($letters, 1, 3);
print_r($slice); // ['b', 'c', 'd']
$last2 = array_slice($letters, -2);
print_r($last2); // ['d', 'e']Операции со стеком и очередью
Массивы PHP также могут работать как стеки и очереди:
<?php
$stack = [];
array_push($stack, 'a', 'b');
$top = array_pop($stack); // 'b' — LIFO
$queue = ['first', 'second'];
array_push($queue, 'third');
$front = array_shift($queue); // 'first' — FIFO
array_unshift($queue, 'zero'); // prependcompact и extract
compact() создаёт ассоциативный массив из имён переменных; extract() выполняет обратное преобразование:
<?php
$name = 'Alice';
$age = 30;
$data = compact('name', 'age');
// ['name' => 'Alice', 'age' => 30]
extract(['city' => 'London', 'country' => 'UK']);
echo $city; // London
echo $country; // UKБыстрая проверка
Что возвращает array_key_exists('key', $arr), если ключ существует, но его значение равно NULL?
Итоги: индексированные и ассоциативные массивы
Основы массивов PHP:
- Индексированные массивы используют числовые ключи, а ассоциативные — строковые
- Добавляйте элементы с помощью
$arr[] = value - Проверяйте ключи с помощью
array_key_exists()иisset() - Деструктурируйте массивы с помощью
[$a, $b] = $arr - Объединяйте массивы с помощью
array_merge()или+(правила замещения различаются) - Операции со стеком и очередью: push, pop, shift, unshift
Часто задаваемые вопросы
Урок «Индексированные и ассоциативные массивы» бесплатный?
Да — полный текст урока «Индексированные и ассоциативные массивы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Индексированные и ассоциативные массивы»?
Создавайте и используйте оба типа массивов PHP. Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Индексированные и ассоциативные массивы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Индексированные и ассоциативные массивы
- Многомерные массивы
- Сортировка и поиск в массивах
- Функции преобразования массивов