在PHP 編程中,數組操作是非常常見的任務。在某些情況下,我們需要對數組進行鍵去重以及填充。幸運的是,PHP 提供了兩個非常有用的函數: array_fill_keys和array_unique 。結合使用這兩個函數,可以輕鬆地實現數組鍵的去重和填充功能。
本文將詳細講解如何使用這兩個函數來實現這個功能。
array_fill_keys
array_fill_keys函數用於填充數組的鍵,並為每個鍵賦相同的值。它的語法如下:
array_fill_keys(array $keys, mixed $value): array
$keys : 一個數組,包含要填充的鍵。
$ value : 每個鍵對應的值。
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);
?>
替換URL 域名<br> 我們首先使用array_map和preg_replace來將數組中的URL 域名替換成m66.ne t preg_replace用來匹配URL 中的域名部分並替換它。
去重URL 鍵<br> 然後,使用array_unique函數來去重這些URL 鍵,確保每個URL 在結果中只出現一次
填充默認值<br> 最後,使用array_fill_keys函數將去重後的URL 鍵填充為統一的默認值(例如,"訪問")
經過上述處理,輸出的結果會是一個每個鍵唯一且所有值都為"訪問" 的數組:
Array
(
[https://m66.net] => 訪問
[https://m66.net] => 訪問
[https://m66.net] => 訪問
)
通過以上方法,我們可以實現PHP 數組鍵的去重,並且填充特定的值。
通過結合使用array_fill_keys和array_unique ,我們可以輕鬆實現PHP 數組鍵的去重和填充功能。在處理數組時,使用這些內置函數可以有效地提高代碼的簡潔性和執行效率。希望本文的示例和解釋能幫助你更好地理解這兩個函數的用法。