2011-08-17 122 views
0

之间的区别,我有以下两个数组:得到两个类型的数组

数组1

Array 
(
    [0] => 6012 
    [1] => 7792 
) 

阵列2

Array 
(
    [6012] => Array 
     (
      [title] => COIN Group   
      [nid] => 6012    
     ) 

    [7792] => Array 
     (
      [title] => fdsfsdafdsa 
      [nid] => 7792    
     ) 

    [4689] => Array 
     (
      [title] => General Group    
      [nid] => 4689   
     ) 

    [6784] => Array 
     (
      [title] => Invitation to join the group Applied Economics for Managers 
      [nid] => 6784   
     ) 

) 

我需要这两个数组比较并找到数组1和数组2之间的差异。我的输出需要如下所示:

Array 
(

    [4689] => Array 
     (
      [title] => General Group    
      [nid] => 4689   
     ) 

    [6784] => Array 
     (
      [title] => Invitation to join the group Applied Economics for Managers 
      [nid] => 6784   
     ) 

) 

这怎么用PHP来完成?

+0

$组= array_keys($用户>基团);和我使用array_diff得到的区别...但我的o/p不是我所需要的。它看起来像Array ( [0] => 4689 [1] => 6984 )。我需要用数组2中的所有值 – Fero

回答

0

伪代码:

result = array(); 

foreach array2 as key => value { 
    if (in_array(key, array1) { 
     result[key] = value; 
    } 
} 
1
$compare_array1 = array_values($array1); 
$compare_array2 = array_keys($array2); 

$diff_keys = array_diff($compare_array2, $compare_array1); 

$result = array(); 

foreach ($diff_keys as $key) 
    $result[$key] = $array2[$key]; 
0
function diffArrays($array1,$array2){ 
    foreach($array1 as $key) 
     unset($array2[$key]; 
    return $array2; 
} 

function diffArrays2($array1,$array2){ 
    return array_diff_key($array2,array_flip($array1));