ZetCode

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 的 array_fill_keys 函数,展示了其在数组初始化场景中的用法。

作者

我的名字是 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 PHP 数组函数