首頁 > 後端開發 > PHP問題 > php 怎麼求2個陣列相同的元素

php 怎麼求2個陣列相同的元素

藏色散人
發布: 2023-03-17 16:50:01
原創
5231 人瀏覽過

php求2個陣列相同元素的方法:1、建立一個php範例檔案;2、定義兩個有相同元素的陣列;3、使用「array_intersect($array1,$array2)」或「 array_intersect_assoc()」方法取得兩個陣列相同元素即可。

php 怎麼求2個陣列相同的元素

本教學操作環境: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(&#39;1&#39;, &#39;a&#39; => &#39;aaaaaa&#39;, &#39;b&#39; => &#39;bbbbbb&#39;, &#39;c&#39;);
$array2 = array(&#39;a&#39; => &#39;aaaaaa&#39;, &#39;c&#39; => &#39;bbbbbb&#39;, &#39;c&#39;, &#39;1&#39;);
 
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(&#39;1&#39;, &#39;a&#39; => &#39;aaaaaa&#39;, &#39;b&#39; => &#39;bbbbbb&#39;, &#39;c&#39;);
$array2 = array(&#39;a&#39; => &#39;aaaaaa&#39;, &#39;c&#39; => &#39;bbbbbb&#39;, &#39;c&#39;, &#39;1&#39;);
 
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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
怎麼學好php
來自於 1970-01-01 08:00:00
0
0
0
PHP擴充intl
來自於 1970-01-01 08:00:00
0
0
0
php數據獲取?
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板