zoukankan      html  css  js  c++  java
  • 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
      ]
    ]
  • 相关阅读:
    软考之操作系统
    牛腩javascript(二)之正则表达式
    牛腩javascript(一)
    软考之算法
    软考之数据结构
    软考之路之刷屏开始
    XML中的几种比较
    北大青鸟ASP.NET之总结篇
    Webassembly 学习2 -- Js 与C 数据交互
    nginx-proxy_redirect
  • 原文地址:https://www.cnblogs.com/lzs-888/p/11465094.html
Copyright © 2011-2022 走看看