[英]Optimalization of function which compare two multidimensional arrays
我想知道是否有更快的方法來找到兩個多維數組之間的差異。 我array1
差異(從array1
角度來看)
array1
和array2
有多少行
(來源: matematyka.pl )
array1
有多少行,而array2
中沒有
反之亦然,在array2
有多少行而不在array1
。
我嘗試的解決方案是遍歷兩個數組並比較列。 但是這些數組只有大約7 columns
事實使它非常煩人。
像array_diff
類的函數有什么用?
用於第一次查詢
$comonarray=array_intersect(A,B);
您可以在兩個數組中找到共同值
通過使用以下函數,您只能在A數組中找到值
$onlyina=array_diff(A,B);
通過使用以下函數,您只能在B數組中找到值
$onlyinb= array_diff(B,A);
================
當兩個表中都匹配時,返回行。
SELECT `columns` FROM A
INNER JOIN B
ON A.id = B.id;
僅在表A中返回記錄集,而在表B中不返回,並且使用WHERE子句從表B中排除記錄
SELECT `columns` FROM A
LEFT OUTER JOIN B
ON A.id = B.id
WHERE B.id IS null;
僅在表B中返回記錄集,而在表A中不返回,並且使用WHERE子句從表A中排除記錄
SELECT `columns` FROM A
RIGHT OUTER JOIN B
ON A.id = B.id
WHERE A.id IS null;
================
要從array1和array2查找匹配值,請使用array_intersect()。
$arr1 = array('a','b','c');
$arr2 = array('b','c','f');
$result = array_intersect($arr1,$arr2);
Array
(
[1] => b
[2] => c
)
要查找array2中不存在的array1中的值,請使用array_diff() array_diff()
接受多個數組參數,但應首先檢查要檢查的數組。
$arr1 = array('a','b','c');
$arr2 = array('b','c','f');
$result = array_diff($arr1,$arr2);
Array
(
[0] => a
)
此方法還使用array_diff() ,只是我們將翻轉搜索順序。 array2將首先出現,以便我們在array2中找到array1中不存在的值。 要查找array2中不存在的array1中的值,請使用
$arr1 = array('a','b','c');
$arr2 = array('b','c','f');
$result = array_diff($arr1,$arr2);
Array
(
[2] => f
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.