一維陣列取交集是非常的簡單,直接用乙個函式即可。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 宣告 元素型別 變數名 元素型別 變...