php求2個陣列相同元素的方法:1、建立一個php範例檔案;2、定義兩個有相同元素的陣列;3、使用「array_intersect($array1,$array2)」或「 array_intersect_assoc()」方法取得兩個陣列相同元素即可。
本教學操作環境:windows10系統、PHP8.1版、DELL G3電腦
php 怎麼求2個陣列相同的元素?
php取得兩個陣列相同的元素(交集)以及比較兩個陣列中不同的元素(差集)
(一)php取得兩個陣列相同元素
array array_intersect(array $array1, array $array2, [, array $...]) array array_intersect_assoc(array $array1, array $array2, [, array $...])
這兩個方法的功能基本上一致,都是傳回兩個數組(也可以是多個數組)中都存在的元素,不同的是,前者只考慮數組中元素的value一致就認為兩者相同,而後者需要key 和value 都一致才認為兩者相同,例如:
<?php $array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c'); $array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1'); var_dump(array_intersect($array1,$array2));
運行上面的程式碼會得到如下結果:
array(4) { [0]=> string(1) "1" ["a"]=> string(6) "aaaaaa" ["b"]=> string(6) "bbbbbb" [1]=> string(1) "c" }
而使用方法array_intersect_assoc ()將會得到以下結果:
array(1) { ["a"]=> string(6) "aaaaaa" }
(二)php比較兩個陣列中的不同元素
array array_diff(array $array1, array $array2, [, array $...]) array array_diff_assoc(array $array1, array $array2, [, array $...])
類似的,這兩個方法的基本功能也是一致的,傳回第一個數組中有,但是其它數組沒有的元素。前者只比較值,後者同時比較 key 和 value。
<?php $array1 = array('1', 'a' => 'aaaaaa', 'b' => 'bbbbbb', 'c'); $array2 = array('a' => 'aaaaaa', 'c' => 'bbbbbb', 'c', '1'); var_dump(array_diff($array1,$array2));
上面程式碼的運作結果為:
array(0) { }
而如果將最後一行換成 var_dump(array_diff_assoc($array1, $array2)); 將會得到以下結果:
array(3) { [0]=> string(1) "1" ["b"]=> string(6) "bbbbbb" [1]=> string(1) "c" }
推薦學習:《PHP影片教學》
以上是php 怎麼求2個陣列相同的元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!