Какие виды массивов существуют в PHP?

«Какие виды массивов существуют в PHP?» — вопрос из категории PHP Core, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В PHP массивы — это упорядоченные карты (hash tables), и их можно классифицировать по структуре и использованию ключей.

Основные виды по структуре:

  1. Одномерные массивы — содержат простые значения (строки, числа, объекты).
  2. Многомерные массивы — содержат другие массивы в качестве значений, позволяя создавать структуры вроде матриц или деревьев.

Основные виды по типу ключей:

  1. Индексные (числовые) массивы — используют последовательные целочисленные ключи, начинающиеся с 0.
    $fruits = ['apple', 'banana', 'orange']; // Ключи: 0, 1, 2
  2. Ассоциативные массивы — используют строковые ключи для явной связи "ключ-значение".
    $user = ['name' => 'John', 'email' => 'john@example.com'];
  3. Смешанные массивы — могут содержать как числовые, так и строковые ключи одновременно. PHP это позволяет.
    $mixed = [0 => 'a', 'id' => 123, 1 => 'b'];

Важные особенности:

  • Все массивы в PHP по сути являются ассоциативными. "Индексный" массив — это частный случай ассоциативного с целочисленными ключами.
  • Начиная с PHP 7.4, можно использовать типизированные свойства для массивов с помощью объявления типа array.
  • Функции вроде array_values() могут "сбросить" ключи к числовой последовательности, что полезно после операций unset().