php - diffing嵌套数组

时间:2013-03-12 17:10:55

标签: php multidimensional-array diff

我有2个多维数组:

$first_array = array(
  0 => array(tid => 141), 
  1 => array(tid => 142), 
  2 => array(tid => 128)
);

$second_array = array(
  0 => array(tid => 141), 
  1 => array(tid => 128)
);

我需要检查第二个数组中是否存在第一个数组中的任何项目。如果有,我需要从第一个数组中删除它们。

以上面的例子为例,$first_array最终应为array(0 => array(tid => 142))

有什么建议吗?

编辑:这是我使用的:

$first_array = array(
  0 => array('tid' => 141), 
  1 => array('tid' => 142), 
  2 => array('tid' => 128)
);

$second_array = array(
  0 => array('tid' => 141), 
  1 => array('tid' => 128)
);


function my_serialize(&$arr,$pos){ 
  $arr = serialize($arr); 
} 

function my_unserialize(&$arr,$pos){ 
  $arr = unserialize($arr); 
} 

 //make a copy 
$first_array_s = $first_array; 
$second_array_s = $second_array; 

// serialize all sub-arrays 
array_walk($first_array_s,'my_serialize'); 
array_walk($second_array_s,'my_serialize'); 

// array_diff the serialized versions 
$diff = array_diff($first_array_s,$second_array_s); 

// unserialize the result 
array_walk($diff,'my_unserialize'); 

print_r($diff); 

0 个答案:

没有答案