$q[]   =   Array ('a' => 'b2', 'b' =>'23' );
$q[]   =   Array ('a' => 'a5', 'b' =>'23' )    
$s[]   =   Array ('c' => 'k1', 'a' =>'84', 'd' => '0' ); 
$s[]   =   Array ('c' => '19', 'a' =>'a5', 'd' => '0' ); 
$s[]   =   Array ('c' => '80', 'a' =>'60', 'd' => '0' );
$s[]   =   Array ('c' => '80', 'a' =>'b2', 'd' => '0' );
$d = array_diff($s,$q);//知道不是这样写我希望
比对$s和$q的 key:'a',当$s中存在$q相同的'a'的时候就把整组删掉,如'a'分别为'b2','a5';
然后得到一个新的数组 $d 的值是;他的值应该是: 
Array ('c' => 'k1', 'a' =>'84', 'd' => '0' ); 
Array ('c' => '80', 'a' =>'60', 'd' => '0' );======================================
该如何实现呢?

解决方案 »

  1.   

    function getDiffArray($array1,$array2){
        $a_arr =array();
        for ($i=0;$i<count($array1);$i++){
            foreach ($array1[$i] as $k=>$v){
                 if ($k=='a')$a_arr[]=$v;
            }
        }
        $return_array=array();
        for ($i=0;$i<count($array2);$i++){
            foreach ($array2[$i] as $k=>$v){
                 if ($k=='a' && in_array($v,$a_arr))continue 2;
            }
            $return_array[]= $array2[$i];   
        }
        return $return_array;
    }
      

  2.   

    谢谢,,,,fenyao,,,我也知道用循环可以,但先个偷懒看有没有什么函数可以更方便解决