I have 2 multidimensional arrays:
$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)
);
I need to check if there are any items in the second array that are present in the first array. If there are, I need to remove them from the first array.
Taking the example above, $first_array
should end up as array(0 => array(tid => 142))
Any suggestions?
Edit: Here is what I used:
$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);