PHP array_fill_keys 函数
最后修改于 2025 年 3 月 13 日
PHP 的 array_fill_keys 函数使用指定的键和一个单一的值创建填充数组。它对于初始化数组非常有用。
基本定义
array_fill_keys 函数通过指定键来填充数组。它返回一个带有给定键和值的数组。
语法:array_fill_keys(array $keys, mixed $value): array。keys 数组提供键,所有元素获得相同的值。
基本的 array_fill_keys 示例
展示了如何创建带有字符串键和默认值的简单数组。
basic_array_fill_keys.php
<?php $keys = ['apple', 'banana', 'orange']; $fruitArray = array_fill_keys($keys, 'in_stock'); print_r($fruitArray);
这创建了一个数组,其中每个水果都是一个键,值为“in_stock”。输出显示所有元素共享相同的值,但键不同。
数字键示例
演示使用数字键通过 array_fill_keys 创建数组。
numeric_keys.php
<?php $numbers = [1, 2, 3, 4]; $numberArray = array_fill_keys($numbers, 'prime'); print_r($numberArray);
这创建了一个键为 1 到 4 的数组,每个键的值都是“prime”。该函数对于数字键和字符串键同样有效。
混合键类型
展示了 array_fill_keys 如何处理同一数组中的不同键类型。
mixed_keys.php
<?php $mixedKeys = ['name', 42, 3.14, true]; $mixedArray = array_fill_keys($mixedKeys, 'value'); print_r($mixedArray);
此示例使用了字符串、整数、浮点数和布尔键。请注意,当布尔值 true 用作数组键时,PHP 如何将其转换为整数 1。
使用变量作为值
演示了使用变量作为 array_fill_keys 的填充值。
variable_value.php
<?php $status = 'pending'; $userIds = [101, 102, 103, 104]; $userStatuses = array_fill_keys($userIds, $status); print_r($userStatuses);
在这里,我们使用一个变量作为填充值。所有用户 ID 都获取当前的 status 值。稍后更改 $status 不会影响创建的数组。
复杂值示例
展示了如何使用数组作为 array_fill_keys 的填充值。
complex_value.php
<?php
$categories = ['books', 'movies', 'music'];
$defaultData = [
'count' => 0,
'last_updated' => null
];
$inventory = array_fill_keys($categories, $defaultData);
print_r($inventory);
这创建了一个多维数组,其中每个类别都有相同的默认数据结构。请注意,所有元素都引用同一个数组。
最佳实践
- 键的唯一性:重复的键将被覆盖。
- 引用值:对象/数组被引用,而不是复制。
- 性能:初始化大型数组效率高。
- 可读性:比手动初始化数组更清晰。
来源
本教程通过实际示例介绍了 PHP 的 array_fill_keys 函数,展示了其在数组初始化场景中的用法。
作者
列出 所有 PHP 数组函数。