我有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);