$q[]   =   Array ('a' => '1', 'b' => '11');
$q[]   =   Array ('a' => '2', 'b' => '22'); 
$s[]   =   Array ('a' => '1', 'b' => '11');  
$s[]   =   Array ('a' => '2', 'b' => 'BB');
$s[]   =   Array ('a' => '3', 'b' => 'CC' ); 
$s[]   =   Array ('a' => '4', 'b' => '11');$d = array_diff($s,$q);//知道不是这样写
结果是:
Array ( [1] => Array ('a' => '2', 'b' => 'BB'),
        [2] => Array ('a' => '3', 'b' => 'CC' ),
        [3] => Array ('a' => '4', 'b' => '11'));$e = array_diff($s,$q);//知道不是这样写
结果是:
Array ( [1] => Array ('a' => '2', 'b' => '22'));====================================== 
该如何实现呢? 有没有这样的函数

解决方案 »

  1.   

    第一个function myArrayDiff($s,$q){
    $d=array();
    foreach($q as $qKey=>$qValue){
    foreach($s as $sKey=>$sValue){
    if($sValue!=$qValue){
    if(!in_array($sValue,$d)) $d[]=$sValue;
    }else{
    unset($s[$sKey]);
    }
    }
    }
    return $d;
    }
    print_r(myArrayDiff($s,$q));第二个不咋明白你的意思,描述一下你的想法?
      

  2.   


    $q[]   =   Array ('a' => '1', 'b' => '11');
    $q[]   =   Array ('a' => '2', 'b' => '22'); 
    $s[]   =   Array ('a' => '1', 'b' => '11');  
    $s[]   =   Array ('a' => '2', 'b' => 'BB');
    $s[]   =   Array ('a' => '3', 'b' => 'CC' ); 
    $s[]   =   Array ('a' => '4', 'b' => '11');$d = array_diff($s,$q);//知道不是这样写
    结果是:
    Array ( [1] => Array ('a' => '2', 'b' => 'BB'),
            [2] => Array ('a' => '3', 'b' => 'CC' ),
            [3] => Array ('a' => '4', 'b' => '11'));$e = array_diff($q,$s);//知道不是这样写
    结果是:
    Array ( [1] => Array ('a' => '2', 'b' => '22'));
    第二个是写错了,,,上面才对..."blueforyou"的方法我知道;我是想看看有没有现成的比较函数可用!不过同样谢谢blueforyou 的回复