当前位置: 首页> 最新文章列表> 构造带默认值的表格列配置数组

构造带默认值的表格列配置数组

M66 2025-06-06

在开发后台管理系统、内容管理平台或数据展示页时,我们经常需要定义表格的列配置。比如,我们可能需要为每一列设置标题、对齐方式、是否显示等属性。在这些场景中,array_fill_keys() 函数可以帮助我们快速构造出一个“带默认值”的配置数组,大大简化初始化配置的过程。

一、什么是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
]

使用array_fill_keys实现:

<?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() 避免)。