在PHP中求數組的交集,我們可以與PHP給我們提供的現成函數:array_intersect(),其用法格式為:
成都網站建設哪家好,找成都創新互聯公司!專注于網頁設計、重慶網站建設公司、微信開發、微信平臺小程序開發、集團企業網站設計等服務項目。核心團隊均擁有互聯網行業多年經驗,服務眾多知名企業客戶;涵蓋的客戶類型包括:集裝箱等眾多領域,積累了大量豐富的經驗,同時也獲得了客戶的一致表揚!
array array_intersect(array array1,array array2[,arrayN…])
根據上述的語法格式,我們來寫一個例子:
1 ?php
2 $fruit1 = array("Apple","Banana","Orange");
3 $fruit2 = array("Pear","Apple","Grape");
4 $fruit3 = array("Watermelon","Orange","Apple");
5 $intersection = array_intersect($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出結果:
8 // Array ( [0] = Apple )
9 ?
本例子將返回在$fruit1數組中出現且在$fruit2和$fruit3中也出現的所有水果的名子。
使用array_intersect()函數時要注意:只有在兩個元素相等且具有相同的數據類型時,array_intersect()函數才會認
為它們是相同的,否則不能進行交集計算。array_intersect()函數返回一個保留了鍵的數組,只由第一個數組中出現的且在其它數組中都出現的
值組成。
若要求關聯數組的交集,請使用array_intersect_assoc()函數,給你個簡單的例子:
1 ?php
2 $fruit1 = array("red"="Apple","yellow"="Banana","orange"="Orange");
3 $fruit2 = array("yellow"="Pear","red"="Apple","purple"="Grape");
4 $fruit3 = array("green"="Watermelon","orange"="Orange","red"="Apple");
5 $intersection = array_intersect_assoc($fruit1, $fruit2, $fruit3);
6 print_r($intersection);
7 // 輸出:
8 // Array ( [red] = Apple )
9 ?
array_intersect_assoc()函數語法格式如下:
array array_intersect_assoc(array array1,array array2[,arrayN…])
array_intersect_assoc()與array_intersect()基本相同,只不過他在比較中還考慮了數組的鍵。因此,只有在第一個數組中出現,且在所有其他輸入數組中也出現的鍵/值對才返回到結果數組中。
mysql這垃圾不支持交集的。如果是數據庫那么SQL如下SELECT id FROM a WHERE aid=5 INTERSECTSELECT id FROM a WHERE aid=6
你是要查前十個查詢結果中相同的那些記錄,而不求前十個相同記錄吧,因為這是有差別的,按照你的語句,應該是求前者,即先求出A的前十條數據,B的前十條數據,再求它們的交集。
既然是求交集,那么這兩個表的關系模式應該是相同的了,
select
a.*
from
(select
*
from
table
order
by
table.a
desc
limit
10)
as
a,
(select
*
from
table
order
by
table.b
desc
limit
10)
as
b
where
a.primary_key
=
b.primary_key
--先將兩個結果作為兩張臨時表,然后通過主鍵
primary_key來獲取交集(交集肯定就是主鍵相等的了,因為關系模式相同)
網站名稱:mysql交集怎么寫 mysql交并補
分享路徑:http://vcdvsql.cn/article34/ddipsse.html
成都網站建設公司_創新互聯,為您提供服務器托管、網站導航、做網站、虛擬主機、品牌網站制作、響應式網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯