ZetCode

PHP array_fill 函数

最后修改于 2025 年 3 月 13 日

PHP 的 array_fill 函数创建一个用指定值填充的数组。它对于使用默认值初始化数组很有用。

基本定义

array_fill 函数生成一个带有值的数组。它从指定的索引开始,并用给定的值填充数组。

语法:array_fill(int $start_index, int $count, mixed $value): array。该函数返回一个包含 $count 个元素的新数组。

基本的 array_fill 示例

这演示了创建一个用默认值填充的简单数组。

basic_array_fill.php
<?php

$filledArray = array_fill(0, 5, 'default');

print_r($filledArray);

这会创建一个包含 5 个元素的数组,所有元素都设置为 'default'。数组从索引 0 开始。输出显示所有元素都具有相同的值。

负起始索引

array_fill 可以创建带有负起始索引的数组。

negative_index.php
<?php

$negativeArray = array_fill(-3, 4, 'item');

print_r($negativeArray);

这会创建一个从索引 -3 开始、包含 4 个元素的数组。生成的数组将具有键 -3、-2、-1 和 0,所有这些都填充为 'item'。

填充不同数据类型

该函数可以用任何数据类型填充数组,包括对象。

data_types.php
<?php

$numberArray = array_fill(0, 3, 42);
$boolArray = array_fill(0, 2, true);
$objectArray = array_fill(0, 2, new stdClass());

print_r($numberArray);
print_r($boolArray);
print_r($objectArray);

这显示了用整数、布尔值和对象填充的数组。请注意,对象元素将是对同一对象实例的引用。

多维数组

array_fill 可用于创建多维数组。

multi_dimensional.php
<?php

$matrix = array_fill(0, 3, array_fill(0, 3, 0));

print_r($matrix);

这会创建一个 3x3 的矩阵,其中填充了零。外部的 array_fill 创建一个数组,其中每个元素是另一个用零填充的数组。

与 array_fill_keys 结合使用

array_fill 可以与其他数组函数结合使用。

combined.php
<?php

$keys = ['a', 'b', 'c'];
$filled = array_fill_keys($keys, array_fill(0, 3, null));

print_r($filled);

这会创建一个关联数组,其中每个键映射到一个用 null 值填充的子数组。它演示了将 array_fillarray_fill_keys 结合使用。

最佳实践

来源

PHP array_fill 文档

本教程通过实际示例介绍了 PHP array_fill 函数,展示了其在数组初始化场景中的用法。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有超过十年的经验。

列出 所有 PHP 数组函数