function array_diff_assoc_recursive($array1, $array2) { $diffarray = array(); foreach ($array1 as $key => $value) { //判断数组每个元素是否是数组 if (is_array($value)) { //判断第二个数组是否存在key if (!isset($array2[$key])) { $diffarray[$key] = $value; //判断第二个数组key是否是一个数组 } elseif (!is_array($array2[$key])) { $diffarray[$key] = $value; } else { $diff = array_diff_assoc_recursive($value, $array2[$key]); if ($diff != false) { $diffarray[$key] = $diff; } } } elseif (!array_key_exists($key, $array2) || $value !== $array2[$key]) { $diffarray[$key] = $value; } } return $diffarray; }