Multidimensional array diff
php
Solution
yes you can use below function to get you perfect answer
function arrayRecursiveDiff($aArray1, $aArray2) {
$aReturn = array();
foreach ($aArray1 as $mKey => $mValue) {
if (array_key_exists($mKey, $aArray2)) {
if (is_array($mValue)) {
$aRecursiveDiff = arrayRecursiveDiff($mValue, $aArray2[$mKey]);
if (count($aRecursiveDiff)) { $aReturn[$mKey] = $aRecursiveDiff; }
} else {
if ($mValue != $aArray2[$mKey]) {
$aReturn[$mKey] = $mValue;
}
}
} else {
$aReturn[$mKey] = $mValue;
}
}
return $aReturn;
}
$arr1 = arrayRecursiveDiff($big_array,$small_array);
output
as you need
Array
(
[0] => Array
(
[1] => Array
(
[correct] =>
[answer] => false answer2
)
[2] => Array
(
[correct] =>
[answer] => false answer3
)
[3] => Array
(
[correct] => 1
[answer] => correct answer
)
)
)
check here for more info
Problem
I got 2 arrays: ``` $big_array = array ( array ( array ( 'correct' => FALSE, 'answer' => 'false answer1' ), array ( 'correct' => FALSE, 'answer' => 'false answer2' ), array ( 'correct' => FALSE, 'answer' => 'false answer3' ), array ( 'correct' => TRUE, 'answer' => 'correct answer' ) ) ); $small_array = array ( array ( array ( 'correct' => FALSE, 'answer' => 'false answer1' ) ) ); ``` I want to make `array_diff($big_array, $small_array)` but its not working how i want it to, currently it gives me an empty array as a result, where i want the outcome to be: ``` $outcome_array= array ( array ( array ( 'correct' => FALSE, 'answer' => 'false answer2' ), array ( 'correct' => FALSE, 'answer' => 'false answer3' ), array ( 'correct' => TRUE, 'answer' => 'correct answer' ) ) ); ``` Any suggestions?