在開發後台管理系統、內容管理平台或數據展示頁時,我們經常需要定義表格的列配置。比如,我們可能需要為每一列設置標題、對齊方式、是否顯示等屬性。在這些場景中, 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()避免)。