json取交集 多個二維陣列如何取出它們的交集

2021-10-13 03:41:17 字數 1158 閱讀 5769

一維陣列取交集是非常的簡單,直接用乙個函式即可。array_intersect($arr, $ar),那麼二維陣列又是如何的取出它們的交集呢,可能有人同樣想用這個函式,但結果卻不是我們想要的。下面有這樣的乙個陣列:

$arr=array(

array('a'=>'1',2),

array(3,4)

$ar=array(

array('a'=>1,2),

array(3,4)

如果我單獨用 array_intersect($arr, $ar)。返回的結果如下:

array(

array('a'=>'1',2),

array(3,4)

第一種:迴圈法

說明:兩個陣列迴圈,用傳統的方法比較。**如下

$arr=array(

array('a'=>'1',2),

array(3,4)

$ar=array(

array('a'=>1,2),

array(3,4)

foreach ($arr as $value){

foreach ($ar as $val){

if($value==$val){

$nearr=$value;

print_r($nearr);

第二種:json 比較法

說明:把二維陣列中的每個元素用josn 轉換成json格式,這樣就變成了一維陣列,就可以用函式比較,把比較的結果在轉換成陣列即可,**如下:

$arr=array(

json_encode(array('a'=>1,2)),

json_encode(array(3,4))

$ar=array(

json_encode(array('a'=>1,2)),

json_encode(array(5,6)),

json_encode(array(3,4))

function ats($elment){

return json_decode($elment,true);

$art=array_map('ats', array_intersect($arr, $ar));

print_r($art);

不過第二個結果是全等的比較(===),元素的型別以及元素本省都相等才相等。

原文:

C 二維陣列 取位址 複製給 二維指標

本來應該是個簡單的問題,但是我就不明白了,為什麼會段錯誤了。include define uint32 unsigned intuint32 ntype1 xy 11 2 intmain 提示aaaa.cpp in function int main aaaa.cpp 11 9 error cann...

二維陣列 二維陣列和指標

include using namespace std int main 如上面這段程式所示,通過取位址符 指標 p 獲得了變數 a 的位址,那麼解引用符 就可以從 p 中得到變數 a 的值。也就是說,p a和 p a是等價的。p 是變數 a 的位址,從 p 中就可以取出 a 的值。反之,能從 p ...

陣列 二維陣列

一組相同型別的資料組合,是一種引用型別。陣列名稱不是固定的,與其存放的資料的型別有關。如 存放int型別的資料,陣列名稱 int 存放字串資料,陣列名稱 string 存放scanner型別的資料,陣列名稱 scanner陣列中的每個資料,都是這個陣列的元素。1 宣告 元素型別 變數名 元素型別 變...