當前位置: 首頁> 最新文章列表> 使用array_merge() + array_diff_ukey() 合併並剔除鍵

使用array_merge() + array_diff_ukey() 合併並剔除鍵

M66 2025-06-06

在PHP 中, array_merge()array_diff_ukey()是兩個非常常用的函數,它們可以幫助我們輕鬆地合併數組並根據指定的條件剔除數組中的元素。在這篇文章中,我們將介紹如何通過這兩個函數合併數組,並剔除指定鍵。

1. array_merge()函數介紹

array_merge()用於將一個或多個數組合併成一個數組。如果數組中有相同的鍵名,後面的數組中的值會覆蓋前面數組中的值。

例如:

 $array1 = ['a' => 'apple', 'b' => 'banana'];
$array2 = ['b' => 'blueberry', 'c' => 'cherry'];
$result = array_merge($array1, $array2);
print_r($result);

輸出:

 Array
(
    [a] => apple
    [b] => blueberry
    [c] => cherry
)

2. array_diff_ukey()函數介紹

array_diff_ukey()函數用來比較兩個數組的鍵,並返回差異部分。它根據用戶定義的回調函數來確定兩個數組鍵之間的差異。

例如:

 $array1 = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
$array2 = ['a' => 'apricot', 'd' => 'date'];
$result = array_diff_ukey($array1, $array2, 'key_compare_func');
print_r($result);

function key_compare_func($key1, $key2) {
    return strcmp($key1, $key2);
}

輸出:

 Array
(
    [b] => banana
    [c] => cherry
)

array_diff_ukey()比較的是數組的鍵,而不是值,因此它的結果是返回那些在第一個數組中有但在第二個數組中沒有的鍵。

3. 使用array_merge()合併數組並使用array_diff_ukey()剔除指定鍵

結合這兩個函數,我們可以實現先合併數組,再根據指定條件剔除特定的鍵。下面是一個示例代碼,演示如何通過array_merge()合併兩個數組,並使用array_diff_ukey()來剔除某些鍵。

示例代碼:

 <?php
// 定義兩個數組
$array1 = ['a' => 'apple', 'b' => 'banana', 'c' => 'cherry'];
$array2 = ['b' => 'blueberry', 'd' => 'date'];

// 合併數組
$mergedArray = array_merge($array1, $array2);

// 要剔除的鍵
$keysToRemove = ['b'];

// 使用 array_diff_ukey() 來剔除指定鍵
$finalArray = array_diff_ukey($mergedArray, $keysToRemove, function($key1, $key2) {
    return strcmp($key1, $key2);  // 比較鍵
});

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

輸出:

 Array
(
    [a] => apple
    [c] => cherry
    [d] => date
)

在這個例子中,我們首先用array_merge()合併了$array1$array2數組,得到一個新的合併數組。然後,使用array_diff_ukey()剔除了包含鍵'b'的元素。最終,返回的數組包含了除了鍵'b'以外的所有元素。

4. 使用URL 的場景

在某些應用中,可能會涉及到使用URL 處理數據,比如從URL 獲取數據並操作數組。如果你需要處理URL 並替換域名,我們可以利用parse_url()函數來提取和修改URL。

假設我們需要將URL 中的域名替換為m66.net ,可以使用以下代碼: