W3docs

Исчерпывающее руководство по функции 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

php— editable, runs on the server

Результирующий 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

php— editable, runs on the server

Это создаст array 10×10, заполненный нулями.

Примечание: array_fill сохраняет ссылки на один и тот же внутренний array для каждой строки. Изменение одной строки приведёт к изменению всех строк. Чтобы создать независимые строки, используйте цикл для генерации отдельных внутренних массивов.

Заполнение массива одним значением

Функция array_fill повторяет одно значение по нескольким индексам. Например, с её помощью можно создать array из 10 элементов, начиная с индекса 1, все со значением 5:

PHP: пример заполнения array повторяющимся значением

php— editable, runs on the server

Это создаст 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.

Практика

Практика
Что делает функция array_fill() в PHP?
Что делает функция array_fill() в PHP?
Was this page helpful?