在开发后台管理系统、内容管理平台或数据展示页时,我们经常需要定义表格的列配置。比如,我们可能需要为每一列设置标题、对齐方式、是否显示等属性。在这些场景中,array_fill_keys() 函数可以帮助我们快速构造出一个“带默认值”的配置数组,大大简化初始化配置的过程。
PHP 的 array_fill_keys() 是一个内置函数,用于将一个键名数组与一个统一的默认值组合起来,生成一个关联数组。
array_fill_keys(array $keys, mixed $value): array
$keys:要使用的键名数组。
$value:为每个键指定的默认值。
假设我们有一个数据表格,需要展示以下字段:
$columns = ['id', 'username', 'email', 'status', 'created_at'];
我们希望为这些字段提供一个统一的初始配置,比如:
[
'title' => '',
'align' => 'left',
'visible' => true
]
<?php
$columns = ['id', 'username', 'email', 'status', 'created_at'];
$defaultConfig = [
'title' => '',
'align' => 'left',
'visible' => true
];
// 使用array_fill_keys构造带默认值的配置数组
$configs = array_fill_keys($columns, $defaultConfig);
// 示例:为特定字段覆盖默认配置
$configs['id']['title'] = '编号';
$configs['username']['title'] = '用户名';
$configs['email']['title'] = '邮箱';
$configs['status']['title'] = '状态';
$configs['created_at']['title'] = '创建时间';
// 示例输出
echo '<pre>';
print_r($configs);
echo '</pre>';
Array
(
[id] => Array
(
[title] => 编号
[align] => left
[visible] => 1
)
[username] => Array
(
[title] => 用户名
[align] => left
[visible] => 1
)
...
)
假设你想通过接口将这些列配置传到前端,比如一个地址:
https://m66.net/api/table/config
你可以将 $configs 转换为 JSON 输出给前端:
header('Content-Type: application/json');
echo json_encode($configs);
前端就可以根据这些配置动态渲染表格。
如果你有多个配置结构不同的字段,也可以结合 array_map() 或手动覆盖默认值;
可以进一步封装成一个函数,方便复用;
注意:array_fill_keys() 是浅拷贝,如果修改某个键的值,原始的 $defaultConfig 不会改变,但多个键共享同一个数组引用时要小心(可用 array_map() + array_merge() 避免)。