0Pricing
PHP Academy · Урок

Индексированные и ассоциативные массивы

Создавайте и используйте оба типа массивов 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));            // true

array_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'); // prepend

compact и 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 — локальная установка не требуется.

Все уроки этого курса

  1. Индексированные и ассоциативные массивы
  2. Многомерные массивы
  3. Сортировка и поиск в массивах
  4. Функции преобразования массивов
← Назад к PHP Academy