Commit a98d35df authored by 王源's avatar 王源
Browse files

添加判断两个对象数组是否有不同的值

parent 507e00b3
Loading
Loading
Loading
Loading
+32 −9
Original line number Diff line number Diff line
@@ -426,8 +426,8 @@ if (!function_exists('putLog')) {
     * @param string $dir 目录
     * @param string $filename 文件名称
     * date: 2020/3/18
     * @throws
     * @return void
     * @throws
     */
    function put_log($output = 'out-mes', $filename = '', $dir = BASE_PATH . '/runtime/dev/')
    {
@@ -450,7 +450,6 @@ if (!function_exists('putLog')) {
    }
}


if (!function_exists('http_to_server_url')) {
    /**
     * description:将前端的绝对路径转化为服务端相对路径
@@ -467,9 +466,6 @@ if (!function_exists('http_to_server_url')) {
    }
}




if (!function_exists('empty_string_2_null')) {
    /**
     * 空字符串转NULL
@@ -663,8 +659,8 @@ if (!function_exists('make_has_relation_function')) {
    /**
     * 创建我有关联关系的函数
     * @param array $relationColumns 关联关系的列 默认['id', 'name']
     * @return Closure 返回关联关系的匿名函数
     * @param callable|null $callback 内嵌级联调用
     * @return Closure 返回关联关系的匿名函数
     * @return Closure
     */
    function make_has_relation_function($relationColumns = ['id', 'name'], callable $callback = null)
@@ -678,7 +674,6 @@ if (!function_exists('make_has_relation_function')) {
    }
}


if (!function_exists('int_to_chr')) {
    /**
     * 数字转字母 (类似于Excel列标)
@@ -696,6 +691,34 @@ if (!function_exists('int_to_chr')) {
    }
}

if (!function_exists('check_diff_val')) {
    /**
     * 判断两个对象数组是否有不同的值
     * 后者里有前者的key时,但value不一样,返回true
     * 后者里没有前者的key,或有key,但value一样时,返回false
     * @param array $list
     * @param array $data
     * @return bool
     */
    function check_diff_val(array $list, array $data)
    {
        foreach ($list as $key => $val) {
            if (isset($data[$key]) && $data[$key]) {
                if (is_array($val)) {
                    if (check_diff_val($val, $data[$key])) {
                        return true;
                    }
                } else {
                    if ($list[$key] != $data[$key]) {
                        return true;
                    }
                }
            }
        }
        return false;
    }
}