php 2個陣列的不同項

WBOY
發布: 2023-05-05 20:55:06
原創
550 人瀏覽過

PHP是一種非常流行的程式語言,經常會遇到各種需要陣列作為資料類型的問題。其中一個常見的問題是如何找出兩個數組中不同的項。本文將介紹三種常用的方法來解決這個問題。

方法一:使用array_diff()函數

PHP提供了一個非常方便的函數,用來比較兩個陣列的不同項,這個函數就是array_diff()。

例如,我們有兩個數組,分別為$arr1和$arr2:

$arr1 = array('apple', 'banana', 'orange', 'pear');
$arr2 = array('apple', 'banana', 'kiwi', 'grape');
登入後複製
登入後複製

我們想要找出兩個數組中不同的項,那麼我們可以使用array_diff()函數如下:

$diff = array_diff($arr1, $arr2);
print_r($diff);
登入後複製

輸出結果為:

Array
(
    [2] => orange
    [3] => pear
)
登入後複製

方法二:使用array_diff_key()函數

如果我們想要比較陣列的鍵,而不是值,我們可以使用array_diff_key()函數來解決問題。

例如,我們有兩個數組,分別為$arr1和$arr2,其中$arr1的鍵為'a'、'b'、'c',而$arr2的鍵為'a'、 'd'、'e',我們想要找出兩個陣列中不同的鍵,那麼我們可以使用array_diff_key()函數如下:

$arr1 = array('a'=>1, 'b'=>2, 'c'=>3);
$arr2 = array('a'=>1, 'd'=>4, 'e'=>5);
$diff = array_diff_key($arr1, $arr2);
print_r($diff);
登入後複製

輸出結果為:

Array
(
    [b] => 2
    [c] => 3
)
登入後複製

方法三:使用foreach迴圈

除了使用PHP提供的預定義函數外,我們還可以使用foreach迴圈來比較兩個陣列的不同項。

例如,我們有兩個數組,分別為$arr1和$arr2:

$arr1 = array('apple', 'banana', 'orange', 'pear');
$arr2 = array('apple', 'banana', 'kiwi', 'grape');
登入後複製
登入後複製

我們想要找出兩個數組中不同的項,那麼我們可以使用foreach循環來實現如下:

$diff = array();
foreach($arr1 as $val) {
    if (!in_array($val, $arr2)) {
        $diff[] = $val;
    }
}
foreach($arr2 as $val) {
    if (!in_array($val, $arr1)) {
        $diff[] = $val;
    }
}
print_r($diff);
登入後複製

輸出結果為:

Array
(
    [2] => orange
    [3] => pear
    [4] => kiwi
    [5] => grape
)
登入後複製

總結

#以上是三種比較常用的找出兩個陣列中不同項的方法,每個方法都有其各自的特色和適用場景,需要根據實際情況選擇使用。無論是哪一種方法,在進行陣列比較時,都應該注意陣列的鍵和值的類型、數量等因素,以確保比較結果的準確性。

以上是php 2個陣列的不同項的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板