Исчерпывающее руководство по функции array_fill в PHP
Функция array_fill в PHP — мощный инструмент для создания массивов с заданными значениями. Узнайте, как её использовать на практике.
Функция array_fill в PHP — мощный инструмент для создания массивов, заполненных значениями по вашему выбору. В этом руководстве мы подробно рассмотрим, как использовать эту функцию и как применять её в реальных сценариях.
Что такое функция array_fill в PHP?
array_fill — встроенная функция PHP, которая возвращает новый array, заполненный заданным значением. Она полезна всякий раз, когда требуется array известного размера, предварительно заполненный одним значением по умолчанию — например, сетка из нулей, список заполнителей или буфер, который вы перезапишете позже. Вместо того чтобы писать цикл, вы описываете array в одном вызове.
Синтаксис
array_fill(int $start_index, int $count, mixed $value): arrayФункция принимает три аргумента:
$start_index— ключ первого элемента. Если он равен0или положителен, array заполняется последовательными целочисленными ключами начиная с этого значения. Начиная с PHP 8.0, отрицательный начальный индекс также формирует последовательные ключи (-2,-1,0, …); в PHP 7 второй и последующие ключи начинались с0.$count— количество создаваемых элементов. Должно быть0или больше. Значение0возвращает пустой array, а отрицательный count вызываетValueError(PHP 8) или предупреждение (PHP 7).$value— значение, копируемое в каждый элемент. Может быть любого типа: string, число, boolean, object или даже другой array.
Функция возвращает новый array и никогда не изменяет существующий.
Как использовать функцию array_fill в PHP
Использование функции array_fill не вызывает затруднений. Достаточно указать начальный индекс, количество элементов и значение, которым нужно заполнить array, — и функция вернёт array с указанными значениями.
Вот пример использования array_fill для создания array из 10 элементов, начиная с индекса 0, заполненного значением "PHP":
Пример PHP: использование функции array_fill
Результирующий array будет выглядеть следующим образом:
Array (
[0] => PHP
[1] => PHP
[2] => PHP
[3] => PHP
[4] => PHP
[5] => PHP
[6] => PHP
[7] => PHP
[8] => PHP
[9] => PHP
)Практическое применение функции array_fill в PHP
Функция array_fill может использоваться в самых разных реальных сценариях. Вот несколько примеров:
Инициализация массивов
Одним из наиболее распространённых применений array_fill является инициализация массивов значениями по умолчанию. Например, с помощью этой функции можно создать array значений по умолчанию для поля формы.
Создание многомерных массивов
Функция array_fill также позволяет создавать многомерные массивы. Например, с её помощью можно создать двумерный array, заполненный нулями:
PHP: многомерное использование функции array_fill
Это создаст array 10×10, заполненный нулями.
Примечание:
array_fillсохраняет ссылки на один и тот же внутренний array для каждой строки. Изменение одной строки приведёт к изменению всех строк. Чтобы создать независимые строки, используйте цикл для генерации отдельных внутренних массивов.
Заполнение массива одним значением
Функция array_fill повторяет одно значение по нескольким индексам. Например, с её помощью можно создать array из 10 элементов, начиная с индекса 1, все со значением 5:
PHP: пример заполнения array повторяющимся значением
Это создаст array из 10 элементов, начиная с индекса 1, заполненный значением 5.
Примечание: Чтобы получить array с инкрементными значениями (например, числа от 1 до 10), используйте вместо этого встроенную функцию
range(1, 10).
Связанные функции
array_fill — одна из нескольких функций PHP для построения массивов без цикла. В зависимости от задачи может подойти родственная функция:
array_fill_keys()— заполняет array, используя список ключей, которые вы предоставляете, вместо последовательных целых чисел.range()— строит array инкрементных значений (например,1, 2, 3, …), чегоarray_fillделать не умеет.array_pad()— расширяет существующий array до заданного размера, дополняя его значением.array_map()— преобразует заполненный array (например, превращает строку нулей в вычисленные значения).str_repeat()— строковый аналог, когда нужно повторяющееся значение в виде текста, а не элементов array.
Заключение
Функция array_fill предоставляет краткий способ без цикла создать array известного размера, предварительно заполненный одним значением. Она особенно полезна при инициализации массивов значениями по умолчанию, построении сеток из нулей или подготовке буферов, которые будут перезаписаны позже. Помните об ограничениях: count не должен быть отрицательным, одно и то же значение копируется в каждый элемент, а для инкрементных последовательностей следует использовать range(). С учётом этих правил array_fill — чистый инструмент для предсказуемой настройки массивов в PHP.