php 2个多维数组找出不同数值

Luffy666 发布于 2013/05/03 09:11
阅读 4K+
收藏 0
PHP

如:

第一个数组:                                         

array=(

   0=>array(

    a=>'18900',

    b=>'14500',

),

  1=>array(


    a=>'18900',

    b=>'14500',


)

第二个数组:                                 


array=(

   0=>array(

    a=>'18900',

    b=>'14500',

),

  1=>array(


    a=>'18901',

    b=>'14501',


)


找出:

    a=>'18901',

    b=>'14501',


加载中
0
西门飞
西门飞

array_diff计算数组的差集

0
OSC首席保安
OSC首席保安

array_diff 只是针对两个或两个以上的一维数组的。

0
Luffy666
Luffy666
这个函数我试了    不行啊~!大哥
0
deadmau5
deadmau5
只能自己写了。
0
就是个精虫上脑的地方
就是个精虫上脑的地方
只能自己写深度merg了
Luffy666
Luffy666
来点思路把,哥们!
0
梅开源
梅开源

深度遍历是比较精确的操作

其他的我想到个歪门邪道的法子,比较print_r($arr[$k],true)和print_r($arr2[$k],true)的值,粗糙判断是哪个key不同


0
WesleyWu
WesleyWu

将遍历其中一个多维数组使之变为1维数组。

遍历另一个数组的每个元素,并判断是否在上面的1维数组中。最后得出结果集


0
sgcha
sgcha

http://www.93337.com/ism/


我的第一个粉丝,这个的深度搜索的,不过维数不是很多很多,只是二维

图的深度搜索滴

0
solu
solu
$arrA = array(
	array('a' => '18900', 'b' => '14500'),
	array('a' => '18900', 'b' => '14500'),
);

$arrB = array(
	array('a' => '18900', 'b' => '14500'),
	array('a' => '18901', 'b' => '14501'),
);

function foo($arr, &$rt) {
	if (is_array($arr)) {
		foreach ($arr as $v) {
			if (is_array($v)) {
				foo($v, $rt);
			} else {
				$rt[] = $v;
			}
		}
	}
	return $rt;
}
$rtA = array();
$rtB = array();
foo($arrB, $rtB);
foo($arrA, $rtA);
var_dump(array_diff($rtB, $rtA));
先降维在array_diff就好
返回顶部
顶部