• PHP 根据配置转换数组中的键名 方便给前端的时候改键名


      /**
         * 根据配置转换数组中的键名
         * @param array $data 数据,必须为二维数组格式 [0=>[]]
         * @param array $keyNameMapArr 键名转换配置,key为旧的键名,value为新的键名,若找不到旧键名或者新旧键名一致则不进行转换
         * @param bool $unsetOldKey 是否删除旧的键值对,默认是
         * @return array
         */
        public function changeKeyName($data, $keyNameMapArr, $unsetOldKey = true)
        {
            if ($data && is_array($data) && $keyNameMapArr && is_array($keyNameMapArr)) {
                foreach ($data as $k => $v) {
                    // 空数组或者其他空的情况时不处理
                    if (!$v) {
                        continue;
                    }
                    // 遍历字段map
                    foreach ($keyNameMapArr as $oldName => $newName) {
                        // 旧键名与新键名相等 或 数组中没有指定的旧键名 则直接跳过
                        if ($oldName === $newName && !array_key_exists($oldName, $v)) {
                            continue;
                        }
    
                        $data[$k][$newName] = $v[$oldName];
    
                        // 删除旧的键值对
                        if ($unsetOldKey) {
                            unset($data[$k][$oldName]);
                        }
                    }
                }
            }
            return $data;
        }
    // 调用demo
    $data = [
      ['xxxId' => 1]
    ];
    $keyNameMapArr = ['xxxId' => 'id'];
    $data = $this->changeKeyName($data, $keyNameMapArr);
        
    // $data返回
    array:1 [
      0 => array:1 [
        "id" => 1
      ]
    ]
  • 相关阅读:
    mysql practice
    image update to ubuntu18.04
    C++11 new feature
    bazel remote executor--- buildfarm( in docker)
    python3学习笔记13(数据结构)
    python3学习笔记12(变量作用域)
    python3学习笔记11(函数)
    jmeter 01 之beanshell preprocessor
    python3学习笔记10(迭代器和生成器)
    python3学习笔记十(循环语句)
  • 原文地址:https://www.cnblogs.com/lzs-888/p/11465094.html
Copyright © 2020-2023  润新知