首頁  >  文章  >  後端開發  >  PHP array_diff_key()函數用法詳解

PHP array_diff_key()函數用法詳解

WBOY
WBOY原創
2023-06-27 09:23:571977瀏覽

在PHP中,陣列是一種非常常見的資料型別。很多情況下,我們需要對不同的陣列進行比較和處理。而PHP中的array_diff_key()函數能夠非常方便地比較兩個或多個陣列中的鍵值,實現陣列間的差異處理。本文將為大家詳細介紹PHP array_diff_key()函數的用法和實例。

一、array_diff_key()函數的介紹

array_diff_key()函數是PHP內建函數中的一個。它的作用是找出在第一個陣列中存在的鍵名,但在後續的一個或多個陣列中不存在的鍵名,並傳回由這些鍵名所組成的陣列。

函數的語法如下:

array array_diff_key ( array $array1 , array $array2 [, array $... ] )

其中,array1是需要比較的原始數組,array2是需要比較的目標數組。如果給出了第三個數組,則函數將繼續與這個數組進行比較,以此類推,直到最後一個數組為止。

二、array_diff_key()函數的傳回值

array_diff_key()函數傳回的是數組,數組中存放的是在第一個數組中存在,但在後續的一個或多個數組中不存在的鍵名,傳回的數組的鍵名是原始數組的鍵名,傳回的數組的鍵值是原始數組的鍵值。

如果原始數組和目標數組完全一致,則array_diff_key()函數將傳回一個空數組。

三、array_diff_key()函數的使用實例

接下來我們透過幾個實例來示範array_diff_key()函數的使用方法。

  1. 實例一

假設我們有一個原始陣列$firstArray和一個目標陣列$targetArray,如下所示:

$firstArray = array('name'=>'Tom', 'age'=>25, 'sex'=>'male', 'hobby'=>'reading');
$targetArray = array('age'=>20, 'hobby'=>'sport');

現在我們想要找出$firstArray中存在,但在$targetArray中不存在的鍵名。可以使用以下程式碼:

$result = array_diff_key($firstArray, $targetArray);
print_r($result);

執行輸出結果為:

Array
(
    [name] => Tom
    [sex] => male
)

這裡我們可以看到,$firstArray中存在但在$targetArray中不存在的鍵名有'name'和' sex',最終傳回的陣列中僅包含這些鍵名。

  1. 實例二

我們也可以同時比較多個陣列的鍵值,如下所示:

$firstArray = array('name'=>'Tom', 'age'=>25, 'sex'=>'male', 'hobby'=>'reading');
$targetArray1 = array('age'=>20, 'hobby'=>'sport');
$targetArray2 = array('name'=>'Jack', 'hobby'=>'music');
$result = array_diff_key($firstArray, $targetArray1, $targetArray2);
print_r($result);

執行輸出結果為:

Array
(
    [age] => 25
    [sex] => male
)

同樣地,該函數找到所有與$firstArray中鍵名匹配的,但在後續的任何一個目標數組中不存在的鍵名,並傳回包含這些鍵名的數組。

  1. 實例三

我們也可以使用一個迴圈來比較多個數組,如下所示:

$firstArray = array('name'=>'Tom', 'age'=>25, 'sex'=>'male', 'hobby'=>'reading');
$targetArray1 = array('age'=>20, 'hobby'=>'sport');
$targetArray2 = array('name'=>'Jack', 'hobby'=>'music');
$targetArray3 = array('name'=>'Tom', 'age'=>25);
$targetArrays = array($targetArray1, $targetArray2, $targetArray3);
$result = $firstArray;
foreach($targetArrays as $targetArray){
    $result = array_diff_key($result, $targetArray);
}
print_r($result);

執行輸出結果為:

Array
(
    [sex] => male
    [hobby] => reading
)

這裡我們使用了一個循環來比較多個數組,首先將結果數組初始化為原始數組$firstArray,然後逐一比較所有目標數組,使用array_diff_key()函數找到所有不存在於目標數組中的鍵名。

四、總結

透過以上的實例,我們可以看到,array_diff_key()函數非常簡單,非常實用,可以方便地幫助我們在多個陣列之間進行比較和差異處理。總之,掌握函數的使用方法,有助於我們更好地處理和管理PHP中的陣列。

以上是PHP array_diff_key()函數用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn