php中的数组差异

Pra*_*V P -1 php arrays multidimensional-array

如何获得具有以下结构的两个数组之间的差异

<?php

$a1 = array("0" => "red");
$a2 = array("0" => "red", "1" => "green", "2" => "blue", "3" => "yellow");
$result = arrayDiff($a1, $a2);
print '<pre>';
print_r($result);
print '</pre>';

function arrayDiff($aArray1, $aArray2) {
    $aReturn = array();

    foreach ($aArray1 as $mKey => $mValue) {
        if (array_key_exists($mKey, $aArray2)) {
            if (is_array($mValue)) {
                $aRecursiveDiff = arrayDiff($mValue, $aArray2[$mKey]);
                if (count($aRecursiveDiff)) {
                    $aReturn[$mKey] = $aRecursiveDiff;
                }
            } else {
                if ($mValue != $aArray2[$mKey]) {
                    $aReturn[$mKey] = $aArray2[$mKey];
                }
            }
        } else {
            $aReturn[$mKey] = $mValue;
        }
    }

    return $aReturn;
}

?>
Run Code Online (Sandbox Code Playgroud)

我得到一个空数组作为输出.我的首选输出是:

Array
(
   [0] => green
   [1] => blue
   [2] => yellow   
)
Run Code Online (Sandbox Code Playgroud)

Jen*_*ohn 6

<?php
$a1 = array("0" => "red");
$a2 = array("0" => "red", "1" => "green", "2" => "blue", "3" => "yellow");
$result = array_diff($a2, $a1);

    print_r($result);

    $result = array_values($result);
    print_r($result); 
?>
Run Code Online (Sandbox Code Playgroud)