Как заполнить массив текстовыми значениями: 0001, 0002, ..., 9999?
Функция str_pad дополняет входную строку до нужной длины любым символом, слева и/или справа.
Этого достаточно для решения поставленной задачи.$resultArray = [];

for ($i = 1; $i <= 9999; $i++) {
  $resultArray[] = str_pad($i, 4, '0', STR_PAD_LEFT);
}

var_dump($resultArray);
пояснение функцииstr_pad(
  $i,           // текущее число (оно будет приведено к строке автоматически)
  4,            // дополнить до 4-х символов
  '0',          // нулями
  STR_PAD_LEFT  // слева
)
С циклом, надеюсь, знакомы.
Напишу свой вариант$result = array_map(
    function($value) {
        return sprintf("%'.04d", $value);
    }, range(1, 9999)
);

echo '<pre>' . print_r($result, true) . '</pre>';