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_fill 与 array_fill_keys 结合使用。
最佳实践
- 内存使用: 请注意,大型数组会消耗内存。
- 对象引用: 请记住,所有对象元素都引用同一实例。
- 负索引: 对特定用例有用,但可能令人困惑。
- 性能: 比手动循环进行数组初始化更快。
来源
本教程通过实际示例介绍了 PHP array_fill 函数,展示了其在数组初始化场景中的用法。
作者
列出 所有 PHP 数组函数。