當前位置: 首頁> 最新文章列表> 利用array_fill_keys 構造JSON 模板數組

利用array_fill_keys 構造JSON 模板數組

M66 2025-06-06

在日常的PHP 開發中,我們經常需要構造一些結構固定的JSON 數據,尤其是在處理API 返回數據或配置模板時。如果你曾經為手動填充每個鍵而煩惱, array_fill_keys函數將成為你的好幫手。

一、 array_fill_keys是什麼?

array_fill_keys是PHP 提供的一個內置函數,它的作用是:使用指定的鍵名數組和一個默認的值,快速生成一個完整的關聯數組

語法如下:

 array_fill_keys(array $keys, mixed $value): array
  • $keys :需要作為鍵的數組。

  • $value :賦給所有鍵的初始值。

這個函數非常適合用在模板初始化、佔位數據構造等場景中。

二、應用場景:構造JSON 模板數組

設想這樣一個場景:你需要返回一個標準化的JSON 響應,其中包含字段idnamestatusurl ,而這些字段在初始化時都需要有默認值(比如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 使用

假設我們需要輸出一組這樣的數據模板,並將其轉為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