當前位置: 首頁> 最新文章列表> array_fill_keys 搭配array_unique 實現鍵去重填充

array_fill_keys 搭配array_unique 實現鍵去重填充

M66 2025-05-17

在PHP 編程中,數組操作是非常常見的任務。在某些情況下,我們需要對數組進行鍵去重以及填充。幸運的是,PHP 提供了兩個非常有用的函數: array_fill_keysarray_unique 。結合使用這兩個函數,可以輕鬆地實現數組鍵的去重和填充功能。

本文將詳細講解如何使用這兩個函數來實現這個功能。

什麼是array_fill_keysarray_unique

  1. array_fill_keys
    array_fill_keys函數用於填充數組的鍵,並為每個鍵賦相同的值。它的語法如下:

     array_fill_keys(array $keys, mixed $value): array
    
    • $keys : 一個數組,包含要填充的鍵。

    • $ value : 每個鍵對應的值。

  2. array_unique
    array_unique函數用於移除數組中的重複值。它的語法如下:

     array_unique(array $array, int $sort_flags = SORT_STRING): array
    
    • $array : 要處理的數組。

    • $sort_flags : 用於指定排序的類型(例如字符串排序,數字排序等)。

通過這兩個函數實現數組鍵的去重和填充

假設我們有一個包含多個重複鍵的數組,並且我們想要去重這些鍵並為每個鍵填充一個特定的值。

示例場景:

我們有一個包含多個URL 的數組,其中有重複的URL 鍵。我們希望通過去重鍵來確保每個URL 只有一個鍵,然後為每個URL 鍵填充一個值(例如,填充一個字符串"訪問")。

代碼示例:

 <?php
// 示例 URL 數組
$urls = [
    'https://example1.com' => '資訊1',
    'https://example2.com' => '資訊2',
    'https://example1.com' => '資訊3',
    'https://example3.com' => '資訊4',
];

// 替換域名為 m66.net
$urls = array_map(function($key) {
    return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $key);
}, array_keys($urls));

// 去重 URL 鍵
$uniqueUrls = array_unique($urls);

// 使用 array_fill_keys 為每個唯一的 URL 鍵填充默认值
$finalArray = array_fill_keys($uniqueUrls, '訪問');

// 輸出結果
print_r($finalArray);
?>

代碼解析

  1. 替換URL 域名<br> 我們首先使用array_map和preg_replace來將數組中的URL 域名替換成m66.ne t preg_replace用來匹配URL 中的域名部分並替換它。

  2. 去重URL 鍵<br> 然後,使用array_unique函數來去重這些URL 鍵,確保每個URL 在結果中只出現一次

  3. 填充默認值<br> 最後,使用array_fill_keys函數將去重後的URL 鍵填充為統一的默認值(例如,"訪問")

輸出結果

經過上述處理,輸出的結果會是一個每個鍵唯一且所有值都為"訪問" 的數組:

 Array
(
    [https://m66.net] => 訪問
    [https://m66.net] => 訪問
    [https://m66.net] => 訪問
)

通過以上方法,我們可以實現PHP 數組鍵的去重,並且填充特定的值。

總結

通過結合使用array_fill_keysarray_unique ,我們可以輕鬆實現PHP 數組鍵的去重和填充功能。在處理數組時,使用這些內置函數可以有效地提高代碼的簡潔性和執行效率。希望本文的示例和解釋能幫助你更好地理解這兩個函數的用法。