首頁 後端開發 PHP問題 php怎麼去除兩個陣列相同的值

php怎麼去除兩個陣列相同的值

Apr 27, 2023 am 09:11 AM

在進行陣列操作的過程中,有時會遇到移除兩個陣列中相同元素的情況。在 PHP 中,有多種方法可以實現這一目的。以下將介紹三種不同的方法。

方法一:使用陣列函數array_diff()

PHP 的array_diff() 函數可以用來計算兩個或多個陣列的差集,即傳回一個新數組,其值為在第一個數組中出現但未在其他數組中出現的元素。因此,我們可以使用 array_diff() 來找出兩個陣列中不同的元素,也就是相同元素的補集。

範例程式碼:

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 5, 7, 9, 11];
$result = array_merge(array_diff($array1, $array2), array_diff($array2, $array1));
print_r($result);
登入後複製

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 7
    [4] => 9
    [5] => 11
)
登入後複製
登入後複製

上述程式碼首先以array_diff() 函數找出了兩個輸入陣列的補集,然後將其合併成一個新數組,即所有不同的元素。

方法二:使用迴圈遍歷

我們也可以使用迴圈遍歷的方式,將兩個陣列中相同的元素刪除。要實作這個方法,我們需要先遍歷一個數組,然後在另一個數組中尋找相同元素,並將它從數組中刪除。

範例程式碼:

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 5, 7, 9, 11];

foreach ($array1 as $key => $value) {
    if (in_array($value, $array2)) {
        unset($array1[$key]);
        unset($array2[array_search($value, $array2)]);
    }
}

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

print_r($result);
登入後複製

輸出結果:

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 7
    [4] => 9
    [5] => 11
)
登入後複製
登入後複製

上述程式碼首先遍歷了$array1 中的元素,然後在$array2 中尋找相同的元素並將其移除。最後將兩個數字組合併成一個新數組。

方法三:使用陣列函數array_intersect()

另外一種方法是使用PHP 的array_intersect() 函數,該函數傳回兩個或多個陣列的交集,即包含在所有輸入數組中的元素。類似於上文的第一種方法,這種方法也是找到兩個數組中相同的元素,然後將它們組成一個新數組。

範例程式碼:

$array1 = [1, 2, 3, 4, 5];
$array2 = [3, 5, 7, 9, 11];

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

print_r($result);
登入後複製

輸出結果:

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

上述程式碼直接使用了array_intersect() 函數,找到了$array1 和$array2 中相同的元素,即3和5。

這些方法中,使用 array_diff() 的程式碼最為簡潔,同時也是最有效率的,因為它可以一次完成所有任務。使用循環遍歷的方法雖然簡單易懂,但是稍微有些複雜,同時也可能會比較耗時。最後,使用 array_intersect() 的方法需要注意,因為它只傳回相同的元素,而不是兩個陣列的差集,因此不適用於所有的情況。

以上是php怎麼去除兩個陣列相同的值的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP數組去重有哪些最佳實踐 PHP數組去重有哪些最佳實踐 Mar 03, 2025 pm 04:41 PM

PHP數組去重有哪些最佳實踐

PHP數組去重可以利用鍵名唯一性嗎 PHP數組去重可以利用鍵名唯一性嗎 Mar 03, 2025 pm 04:51 PM

PHP數組去重可以利用鍵名唯一性嗎

PHP數組去重需要考慮性能損耗嗎 PHP數組去重需要考慮性能損耗嗎 Mar 03, 2025 pm 04:47 PM

PHP數組去重需要考慮性能損耗嗎

PHP數組去重有哪些優化技巧 PHP數組去重有哪些優化技巧 Mar 03, 2025 pm 04:50 PM

PHP數組去重有哪些優化技巧

如何在PHP中實現消息隊列(RabbitMQ,REDIS)? 如何在PHP中實現消息隊列(RabbitMQ,REDIS)? Mar 10, 2025 pm 06:15 PM

如何在PHP中實現消息隊列(RabbitMQ,REDIS)?

最新的PHP編碼標準和最佳實踐是什麼? 最新的PHP編碼標準和最佳實踐是什麼? Mar 10, 2025 pm 06:16 PM

最新的PHP編碼標準和最佳實踐是什麼?

我如何處理PHP擴展和PECL? 我如何處理PHP擴展和PECL? Mar 10, 2025 pm 06:12 PM

我如何處理PHP擴展和PECL?

如何使用反射來分析和操縱PHP代碼? 如何使用反射來分析和操縱PHP代碼? Mar 10, 2025 pm 06:12 PM

如何使用反射來分析和操縱PHP代碼?

See all articles