/**
* 根据配置转换数组中的键名
* @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
]
]

PHP 根据配置转换数组中的键名 方便给前端的时候改键名的更多相关文章

  1. php usort 按照数组中的某个键值排序

    //php usort 按照数组中的某个键值排序 如果第一个参数小于第二个参数 -> 返回小于0的整数如果第一个参数等于于第二个参数 -> 返回等于0的整数如果第一个参数大于于第二个参数 ...

  2. php中的常用数组函数(五)(数组中获取键名集合)

    array_keys($arr, $search_value, $strict); --数组中获取键名的集合. //参数1 要检索的数组:参数2 要检索的键值 默认NULL: 参数3 是否严格比较(= ...

  3. php中的常用数组函数(四)(数组中是否有某个键名或索引)

    /***********array_key_exists(检查键名或索引是否在数组中)*****************/ $arr1 = array('name' => 'Sheldon', ...

  4. php中的不常用数组函数(一)(数组中元素的键和值对调 array_flip())

    array_flip($arr); //交换数组中的键和值. //如下所示,如果$arr中有相同的值.交换之后 会被旧的覆盖,最后一个有效. /***********array_flip(交换数组中的 ...

  5. PHP如何根据数组中的键值进行排序

    主要是使用PHP的排序函数,asort()和arsort(). 为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数 <?php $array = array( array(), ...

  6. PHP:过滤数组中为空的值,并将返回的数组使用数值键,从 0 开始并以 1 递增

    首先了解下以下两个函数: 1.array_filter() 函数用回调函数过滤数组中的值. 2.array_values() 函数返回一个包含给定数组中所有键值的数组,但不保留键名.(被返回的数组将使 ...

  7. 【CodeBase】通过层级键在多维数组中获取目标值

    通过层级键在多维数组中获取目标值 /* *Author : @YunGaZeon *Date : 2017.08.09 *param data : Data Array *param keys : K ...

  8. smarty中ifelse、foreach以及获取数组中键值名的一个实例

    <{if empty($history)}> <tr> <td colspan="6">Not any records!</td> ...

  9. 求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123,相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0。方法是先将整型数字转换到数组中,再判断。函数为 int same(int num)其中num是输入的整型数字

    import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Test { pub ...

随机推荐

  1. odoo开发笔记 -- 单台物理服务器上,利用docker部署多套odoo应用

    部署结构: 待更新! ----服务器硬件配置: 操作系统:ubuntu16.04-64bit CPU/内存:4核8G 1. 基础环境安装 nginx离线安装: docker环境安装: 2. 官方容器镜 ...

  2. 使用 atom 将 makedown 编辑并转换成 pdf

    链接: https://www.cnblogs.com/fanzhidongyzby/p/6637084.html

  3. java中wait()和sleep()的区别;notify()和notifyall()区别

    先说两个概念:锁池和等待池 锁池:假设线程A已经拥有了某个对象(注意:不是类)的锁,而其它的线程想要调用这个对象的某个synchronized方法(或者synchronized块),由于这些线程在进入 ...

  4. label vc

    #pragma once #include <QWidget> #include <QPaintEvent> #include <QPainter> #includ ...

  5. linux查看实时日志命令

    tail -f localhost_access_log.2018-12-11.txt(当前时间)今天的实时日志,操作一下系统,就会报出相应的日志

  6. promise简单实现

    function isFunction(fn){ return Object.prototype.toString.call(fn) === '[object Function]'; } let ST ...

  7. mybatis异常集锦

    [Mybatis]报错:Malformed OGNL expression: name!= null and name != ' ' [Mybatis]报错:Malformed OGNL expres ...

  8. jquery如何生成图片验证码

    jQuery(function($){ /**生成一个随机数**/ function randomNum(min, max) { return Math.floor(Math.random() * ( ...

  9. PHP对二维数组进行排序

    /** * 获取最近的店铺 * @param $lng * @param $lat * @return array */ protected function getClosestShop($lng, ...

  10. vue判断图片为空或者图片加载不成功时显示默认图片

    纯css解决方案: <img src="broken.png" alt=""> img { position: relative; } img:af ...