首頁 >後端開發 >PHP問題 >php怎麼取得兩個數組中不相同的值

php怎麼取得兩個數組中不相同的值

PHPz
PHPz原創
2023-04-20 10:07:30634瀏覽

在 PHP 中,要取得兩個陣列中不相同的元素,我們可以使用 array_diff() 函數。這個函數會傳回一個由陣列1中存在,而陣列2中不存在的元素所組成的新陣列。

下面是一個例子,假設我們要比較的兩個陣列分別為$arr1 和$arr2:

$arr1 = array("apple", "banana", "orange");
$arr2 = array("banana", "orange", "pear", "kiwi");
$result = array_diff($arr1, $arr2);
print_r($result); // 输出:Array ( [0] => apple )

在這個例子中,$arr1 中的"apple" 元素不在$arr2中出現,所以它被回到了$result 陣列中。

但要注意,array_diff() 只會比較一維數組。如果你想比較多維數組,你需要自己寫一個遞歸函數。下面是一個比較多維數組的範例:

function array_diff_multi($arr1, $arr2) {
    $diff = array();
    foreach ($arr1 as $key => $value) {
        if (is_array($value) && isset($arr2[$key]) && is_array($arr2[$key])) {
            $diff[$key] = array_diff_multi($value, $arr2[$key]);
        } else {
            if (!in_array($value, $arr2)) {
                $diff[$key] = $value;
            }
        }
    }
    return $diff;
}

$arr1 = array("fruit" => array("apple", "banana", "orange"), "color" => "blue");
$arr2 = array("fruit" => array("banana", "orange", "pear", "kiwi"), "color" => "red");
$result = array_diff_multi($arr1, $arr2);
print_r($result); // 输出:Array ( [fruit] => Array ( [0] => apple ) [color] => blue )

在這個範例中,我們建立了一個自訂函數 array_diff_multi(),這個函數可以比較兩個多維數組。我們使用遞歸方式來比較每個子數組的元素。

總之,在 PHP 中取得兩個陣列的不同元素有很多種方法。 array_diff() 函數是其中最簡單且最常用的方法之一,但僅適用於一維數組。如果要比較多維數組,則需要使用自訂遞歸函數。

以上是php怎麼取得兩個數組中不相同的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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