在 PHP 中,array_fill() 函数用于用指定的值填充一个数组的指定范围。它可以用来创建一个填充了特定值的数组,或者在某些需要固定值的数组场景中非常有用。在本文中,我们将通过 10 个实战例子来深入了解 array_fill() 函数的用法,帮助你快速上手!
最基础的用法是创建一个指定大小的数组,并填充给定的值。例如:
<?php
$array = array_fill(0, 5, 'PHP');
print_r($array);
?>
输出:
Array
(
[0] => PHP
[1] => PHP
[2] => PHP
[3] => PHP
[4] => PHP
)
此代码会创建一个包含 5 个 'PHP' 的数组。
PHP 的数组允许使用负数作为索引。array_fill() 也支持这种方式:
<?php
$array = array_fill(-3, 5, 'PHP');
print_r($array);
?>
输出:
Array
(
[-3] => PHP
[-2] => PHP
[-1] => PHP
[0] => PHP
[1] => PHP
)
在这个例子中,数组的索引从 -3 开始,并填充了 5 个 'PHP'。
假设我们希望填充一个固定长度的数组,array_fill() 也能很方便地实现这一点:
<?php
$array = array_fill(0, 10, 0);
print_r($array);
?>
输出:
Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
)
这里创建了一个包含 10 个 0 的数组。
array_fill() 也可以用来填充多维数组。例如,我们创建一个二维数组,并填充某个值:
<?php
$array = array_fill(0, 3, array_fill(0, 2, 'PHP'));
print_r($array);
?>
输出:
Array
(
[0] => Array
(
[0] => PHP
[1] => PHP
)
[1] => Array
(
[0] => PHP
[1] => PHP
)
[2] => Array
(
[0] => PHP
[1] => PHP
)
)
这个例子创建了一个 3x2 的数组,其中每个元素都是一个包含 'PHP' 的数组。
假设我们需要创建一个包含多个用户默认数据的数组:
<?php
$userData = array_fill(0, 5, ['name' => 'User', 'age' => 25]);
print_r($userData);
?>
输出:
Array
(
[0] => Array
(
[name] => User
[age] => 25
)
[1] => Array
(
[name] => User
[age] => 25
)
[2] => Array
(
[name] => User
[age] => 25
)
[3] => Array
(
[name] => User
[age] => 25
)
[4] => Array
(
[name] => User
[age] => 25
)
)
我们创建了一个包含 5 个用户信息的数组,每个用户的信息相同。
默认情况下,array_fill() 会从索引 0 开始填充数组,但你也可以指定一个起始索引:
<?php
$array = array_fill(2, 5, 'PHP');
print_r($array);
?>
输出:
Array
(
[2] => PHP
[3] => PHP
[4] => PHP
[5] => PHP
[6] => PHP
)
在这个例子中,数组的索引从 2 开始。
如果你想创建一个关联数组并填充相同的值,可以使用 array_fill():
<?php
$array = array_fill(1, 5, 'PHP');
$array[0] = 'Start'; // 自定义第一个元素
print_r($array);
?>
输出:
Array
(
[0] => Start
[1] => PHP
[2] => PHP
[3] => PHP
[4] => PHP
[5] => PHP
)
这里我们通过手动更改第一个元素来创建一个自定义的关联数组。
你可以通过计算动态生成数组的大小和填充值:
<?php
$n = 5;
$value = 'PHP';
$array = array_fill(0, $n, $value);
print_r($array);
?>
输出:
Array
(
[0] => PHP
[1] => PHP
[2] => PHP
[3] => PHP
[4] => PHP
)
这里通过变量动态生成了一个长度为 5 的数组,值为 'PHP'。
array_fill() 不仅仅可以填充字符串,还可以填充任何数据类型,例如整数、浮点数等:
<?php
$array = array_fill(0, 5, 3.14);
print_r($array);
?>
输出:
Array
(
[0] => 3.14
[1] => 3.14
[2] => 3.14
[3] => 3.14
[4] => 3.14
)
这里填充了一个包含 5 个浮动数 3.14 的数组。
你可以结合 array_map() 等函数,使用 array_fill() 填充数组并进行进一步处理:
<?php
$array = array_fill(0, 5, 0);
$array = array_map(fn($v) => $v + 5, $array);
print_r($array);
?>
输出:
Array
(
[0] => 5
[1] => 5
[2] => 5
[3] => 5
[4] => 5
)
在这里,先使用 array_fill() 填充了一个值为 0 的数组,然后使用 array_map() 给每个元素加上 5。
通过这 10 个例子,我们可以看到 array_fill() 在 PHP 中的强大功能,它不仅可以用于填充数组的值,还可以为你创建多种复杂的数组结构。在你的项目中,你可以根据需求灵活应用这个函数。