Voting

: max(two, nine)?
(Example: nine)

The Note You're Voting On

Henry
1 year ago
function array_diff_assoc_recursive($array1, $array2)
{
$array1Array = [];

foreach ($array1 as $key => $value) {
if (!is_array($value)) {
continue;
}
$array1Array[$key] = $value;
unset($array1[$key]);
}

$array2Array = [];

foreach ($array2 as $key => $value) {
if (!is_array($value)) {
continue;
}
$array2Array[$key] = $value;
unset($array2[$key]);
}

$diff = is_int(array_key_first($array1)) ? array_values(array_diff($array1, $array2)) : array_diff_assoc($array1, $array2);

foreach ($array1Array as $key => $value) {
if (isset($array2Array[$key])) {
$subDiff = array_diff_assoc_recursive($value, $array2Array[$key]);
if (count($subDiff) !== 0) {
$diff = array_merge($diff, is_int($key) ? [$subDiff] : [$key => $subDiff]);
}
} else {
$diff = array_merge($diff, is_int($key) ? [$value] : [$key => $value]);
}
}

return $diff;
}

<< Back to user notes page

To Top