MageConfigSync\Util\ArrayUtil::diffAssocRecursive PHP Method

diffAssocRecursive() public static method

http://www.php.net/manual/en/function.array-diff-assoc.php#111675
public static diffAssocRecursive ( $array1, $array2 ) : array
$array1
$array2
return array
    public static function diffAssocRecursive($array1, $array2)
    {
        $difference = array();
        foreach ($array1 as $key => $value) {
            if (is_array($value)) {
                if (!isset($array2[$key]) || !is_array($array2[$key])) {
                    $difference[$key] = $value;
                } else {
                    $new_diff = self::diffAssocRecursive($value, $array2[$key]);
                    if (!empty($new_diff)) {
                        $difference[$key] = $new_diff;
                    }
                }
            } elseif (!array_key_exists($key, $array2) || $array2[$key] !== $value) {
                $difference[$key] = $value;
            }
        }
        return $difference;
    }

Usage Example

Beispiel #1
0
 /**
  * @param ConfigYaml $a
  * @param ConfigYaml $b
  * @return array
  */
 public static function compare(ConfigYaml $a, ConfigYaml $b)
 {
     $a_data = $a->getData();
     $b_data = $b->getData();
     return ArrayUtil::diffAssocRecursive($a_data, $b_data);
 }