當前位置: 首頁> 最新文章列表> 如何打印出被array_diff_key() 過濾掉的鍵名?

如何打印出被array_diff_key() 過濾掉的鍵名?

M66 2025-06-06

在PHP 中, array_diff_key()是一個非常實用的函數,它可以用來比較兩個數組的鍵名,並返回存在於第一個數組中而不存在於第二個數組中的鍵名。在某些場景下,我們不僅需要獲取過濾後的數組,還希望能夠獲取到那些被過濾掉的鍵名。本文將介紹如何實現這一功能。

使用array_diff_key()函數

array_diff_key()函數的基本用法如下:

 $array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
    'd' => 4
];

$array2 = [
    'b' => 5,
    'd' => 6
];

$result = array_diff_key($array1, $array2);

print_r($result);

輸出結果:

 Array
(
    [a] => 1
    [c] => 3
)

如上例所示, array_diff_key()會返回$array1中那些沒有出現在$array2中的鍵值對。但是,如果我們想要獲取被過濾掉的鍵名,也就是說那些存在於$array1中但沒有出現在$array2中的鍵名,我們需要做一些額外的處理。

獲取被過濾掉的鍵名

為了獲取被過濾掉的鍵名,我們可以先使用array_diff_key()獲取結果,然後通過比較兩個數組的鍵名來找出被移除的鍵名。

 $array1 = [
    'a' => 1,
    'b' => 2,
    'c' => 3,
    'd' => 4
];

$array2 = [
    'b' => 5,
    'd' => 6
];

// 獲取過濾後的數組
$result = array_diff_key($array1, $array2);

// 獲取被過濾掉的鍵名
$filteredKeys = array_keys($array1);
$remainingKeys = array_keys($result);
$removedKeys = array_diff($filteredKeys, $remainingKeys);

echo "被過濾掉的鍵名: ";
print_r($removedKeys);

輸出結果:

 被過濾掉的鍵名: Array
(
    [0] => a
    [1] => c
)

通過這種方法,我們就可以打印出在使用array_diff_key()時被過濾掉的鍵名。具體做法是先獲取$array1中所有的鍵名,再通過array_diff()找出那些不在$result中的鍵名,最終得出被過濾掉的鍵名。

總結

通過以上示例,我們可以看到如何使用array_diff_key()來比較數組的鍵名並獲取被過濾掉的鍵名。在PHP 中,這種操作非常常見,尤其是在進行數組數據清理和比較時。如果你希望保留被過濾掉的鍵名,可以參考本文的方法來實現。