Этот вопрос проверяет знание алгоритмической сложности и понимание реального поведения PHP-массивов.
Вставка и поиск по ключу в PHP-массиве выполняются за константное время в среднем. Удаление также работает быстро. Итерация всегда линейная. В худших случаях сложность может ухудшаться, но на практике это редкость.
Так как PHP-массивы реализованы как хеш-таблицы, их операции имеют предсказуемую сложность.
Перед разбором важно понимать, что речь идёт о средней сложности.
Средняя сложность: O(1)
Возможна перераспределение памяти при росте массива
$array['key'] = 'value';
Средняя сложность: O(1)
Основан на хешировании ключа
$value = $array['key'];
Средняя сложность: O(1)
Элемент помечается как удалённый
unset($array['key']);
Всегда O(n)
Нужно пройтись по всем элементам
foreach ($array as $value) {
// обработка
}
Коллизии хешей
Перестройка таблицы при росте массива
На практике PHP хорошо оптимизирует эти сценарии.
PHP-массивы быстры для доступа по ключу, но любая полная обработка массива линейна. Это важно учитывать при работе с большими объемами данных.