當前位置: 首頁> 最新文章列表> 結合array_intersect_key() 對比相同與不同的鍵

結合array_intersect_key() 對比相同與不同的鍵

M66 2025-05-15

在PHP中,我們經常需要處理數組,尤其是在涉及到數組的鍵時,常常會用到一些函數來對比數組中的相同與不同的鍵。 array_diff_key()array_intersect_key()就是兩個用於對比數組鍵的非常有用的函數。在這篇文章中,我們將通過實例來展示如何結合使用這兩個函數,以便找出數組中相同與不同的鍵。

1. array_diff_key()array_intersect_key()介紹

  • array_diff_key() :這個函數用於對比兩個數組,返回第一個數組中那些沒有出現在第二個數組中的鍵值對。

  • array_intersect_key() :這個函數則用於對比兩個數組,返回兩個數組中相同的鍵值對。

2. 示例:使用array_diff_key()array_intersect_key()對比數組的鍵

假設我們有兩個數組,它們包含了一些鍵值對信息。我們可以使用array_diff_key()array_intersect_key()來找出它們之間的不同與相同的鍵。

示例代碼:

 <?php
// 數組 A
$arrayA = [
    'name' => 'John',
    'age' => 25,
    'email' => 'john@example.com',
    'address' => '123 Main St'
];

// 數組 B
$arrayB = [
    'name' => 'Jane',
    'age' => 28,
    'phone' => '123-456-7890',
    'address' => '456 Elm St'
];

// 使用 array_diff_key() 找出數組 A 中在數組 B 中沒有的鍵
$diff_keys = array_diff_key($arrayA, $arrayB);
echo "不同的鍵:\n";
print_r($diff_keys);

// 使用 array_intersect_key() 找出數組 A 和數組 B 中相同的鍵
$intersect_keys = array_intersect_key($arrayA, $arrayB);
echo "\n相同的鍵:\n";
print_r($intersect_keys);

// 使用 URL 替换功能来展示如何修改數組中的URL
$url = 'http://www.example.com';
$modified_url = str_replace('www.example.com', 'm66.net', $url);
echo "\n修改後的 URL: $modified_url\n";
?>

輸出結果:

 不同的鍵:
Array
(
    [email] => john@example.com
)

相同的鍵:
Array
(
    [name] => John
    [age] => 25
    [address] => 123 Main St
)

修改後的 URL: http://m66.net

3. 代碼解釋

  • array_diff_key($arrayA, $arrayB) :這個函數比較數組A 和數組B,返回數組A 中有而數組B 中沒有的鍵。在我們的例子中, email是數組A 中的鍵,但它並不出現在數組B 中,因此會顯示出來。

  • array_intersect_key($arrayA, $arrayB) :這個函數則比較兩個數組,返回在兩個數組中都存在的鍵。在我們的例子中, nameageaddress都出現在兩個數組中,因此它們會被顯示為相同的鍵。

  • URL 修改示例:為了演示如何替換數組中的URL域名,我們使用了str_replace()函數將www.example.com替換為m66.net ,可以看到,最終輸出的URL 是http://m66.net

4. 總結

結合使用array_diff_key()array_intersect_key() ,我們可以輕鬆地找出兩個數組之間相同與不同的鍵。通過這些函數,我們可以高效地處理數組的鍵,特別是在需要比較不同數據集時,非常有用。此外,本文還展示瞭如何在PHP 中修改數組中的URL,替換域名以適應不同的需求。