在日常的PHP 開發中,我們經常需要構造一些結構固定的JSON 數據,尤其是在處理API 返回數據或配置模板時。如果你曾經為手動填充每個鍵而煩惱, array_fill_keys函數將成為你的好幫手。
array_fill_keys是PHP 提供的一個內置函數,它的作用是:使用指定的鍵名數組和一個默認的值,快速生成一個完整的關聯數組。
語法如下:
array_fill_keys(array $keys, mixed $value): array
$keys :需要作為鍵的數組。
$value :賦給所有鍵的初始值。
這個函數非常適合用在模板初始化、佔位數據構造等場景中。
設想這樣一個場景:你需要返回一個標準化的JSON 響應,其中包含字段id 、 name 、 status 、 url ,而這些字段在初始化時都需要有默認值(比如null、空字符串等)。
傳統寫法可能是這樣的:
$template = [
'id' => null,
'name' => null,
'status' => null,
'url' => null
];
當字段多了之後,這種方式就顯得重複而繁瑣。
使用array_fill_keys ,我們可以這樣寫:
$fields = ['id', 'name', 'status', 'url'];
$template = array_fill_keys($fields, null);
這樣就快速得到了一個所有值為null的模板數組,效率與可讀性都大大提升。
假設我們需要輸出一組這樣的數據模板,並將其轉為JSON 字符串返回給前端:
$fields = ['id', 'name', 'status', 'url'];
$template = array_fill_keys($fields, null);
// 這裡我們為演示,填充一些值
$template['id'] = 101;
$template['name'] = '測試項目';
$template['status'] = 'active';
$template['url'] = 'https://m66.net/api/project/101';
echo json_encode($template, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
輸出結果為:
{
"id": 101,
"name": "測試項目",
"status": "active",
"url": "https://m66.net/api/project/101"
}
這樣一來,整個JSON 結構的模板就能以非常簡潔的方式構建出來,並能根據需要動態替換字段值。
如果我們需要一次性構造多個數據項,比如用於模擬分頁數據,可以結合循環來生成:
$fields = ['id', 'name', 'status', 'url'];
$list = [];
for ($i = 1; $i <= 5; $i++) {
$item = array_fill_keys($fields, null);
$item['id'] = $i;
$item['name'] = '專案 ' . $i;
$item['status'] = 'active';
$item['url'] = "https://m66.net/api/project/{$i}";
$list[] = $item;
}
echo json_encode($list, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
輸出將會是一個包含5 個條目的JSON 數組,每一項結構一致,非常適合作為模擬數據或前端接口輸出。
array_fill_keys是一個簡單卻非常實用的函數,尤其適合構造統一結構的模板數組。無論是單個對像還是數組列表,配合JSON 使用都可以顯著提升代碼的可讀性和可維護性。
當你下次需要初始化結構化數據時,不妨考慮用上這個小巧的工具函數,讓PHP 開發更輕鬆!
相關標籤:
JSON