Ellrion
5/28/2014 - 7:18 AM

array_diff_assoc_recursive helper

array_diff_assoc_recursive helper

<?php

function array_diff_assoc_recursive($aArray1, $aArray2) {
    $aReturn = array();
    foreach ($aArray1 as $mKey => $mValue) {
        if (! array_key_exists($mKey, $aArray2)) {
            $aReturn[$mKey] = $mValue;
            continue;
        }

        if (is_array($mValue)) {
            $aRecursiveDiff = array_diff_assoc_recursive($mValue, $aArray2[$mKey]);
            if (count($aRecursiveDiff)) {
                $aReturn[$mKey] = $aRecursiveDiff;
            }
        } elseif ((string)$mValue !== (string)$aArray2[$mKey]) {
            $aReturn[$mKey] = $mValue;
        }
    }

    return $aReturn;
}