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
  ]
]

原文地址:https://www.cnblogs.com/lzs-888/p/11465094.html

时间: 2024-08-07 02:28:57

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

PHP获取数组中重复值的键值

$array = array ( 0=>'a', 1=>'b', 2=>'a', 5=>'b', 6=>'c', 40=>'d' ); $keyarr =[];$resultkey = [];foreach ($array as $k => $v) { if (in_array($v, $keyarr)) { //在数组中搜索键值$v,并返回它的键名 $resultkey[] = array_search($v,$keyarr); $resultkey[] = $

求一个整型数字中有没有相同的部分,例如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 { public static void main(String[] args) { /** * 2.求一个整型数字中有没有相同的部分,例如12386123这个整型数字中相同的部分是123, * 相同的部分至少应该是2位数,如果有相同部分返回1,如果没有则返回0. * 方法是先将整型数字转换到数组中,再判断.

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

主要是使用PHP的排序函数,asort()和arsort(). 为了减少代码的耦合性,我们将根据数组中的键值进行排序封装成一个函数 1 <?php 2 $array = array( 3 array('name'=>'aa','price'=>1050), 4 array('name'=>'bb','price'=>4300), 5 array('name'=>'cc','price'=>3100), 6 array('name'=>'dd','price'

项目中阶梯费率解决方法,数组中通过键名查找键值

<?php $a = 3.5;$arr = array("1"=>4,"2.5"=>5,"5"=>6);//小数做键名,需要加引号$arr = array_flip($arr); foreach ($arr as $key => $value) { $b[] = $value;} 主要思路就是把数组翻转,取出原数组所有键名组成一维数组,判断出在哪个阶梯范围,再去反转的数组中array_search出对应的键值,这个键

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

<{if empty($history)}> <tr> <td colspan="6">Not any records!</td> </tr> <{else}> <{foreach from=$history item=item}> <tr> <td><{$item.id}></td> <td> <div style="max-

C#将hashtable的值转换到数组中的代码

下边内容内容是关于C#将hashtable的值转换到数组中的内容,应该对各位有些用. var length = ht.Count;Guest[] array = new Guest[length];ht.Values.CopyTo(array, 0); 其中ht为hashtable,其key为字符串,value为一个Guest类,通过此代码可以讲values的值全部放入Guest[]的数组中 原文地址:http://blog.51cto.com/14135053/2341090

Objective-C中把数组中字典中的数据转换成URL

可能上面的标题有些拗口,学过PHP的小伙伴们都知道,PHP中的数组的下标是允许我们自定义的,PHP中的数组确切的说就是键值对.而在OC我们要用字典(Dictionary)来存储,当然了Java用的是Map来存储键值对.下面我们将实现一个极为实用的小例子,网络请求有get和post方法,两种方法各有其优点.在表单提交时Post方法用的更多一些,URL传值则会用到Get方法.在用PHP编程的时候肯定会经常拼接url来传参或者请求,在IOS开发中会向服务器通过url请求一些数据,所以对url的拼接是少

OC中如何把数组中字典的数据转换成URL?

在使用objective-c语言开发iOS应用中,会向服务器通过URL请求一些数据,因此对URL的拼接肯定少不了.而在iOS中,我们一般是通过将字典中的数据拼接成我们要请求的URL字符串,那这个是怎么实现的呢?今天小编就将为大家分享一篇在网上看到的一位大神对Objective-C中把数组字典的数据转换成URL的剖析,一起来看看吧. 1.生成测试数据 字典中的键,我们一般是通过宏定义来初始化的,目的是便于维护,提高代码编写效率,下面是对key的宏定义: //定义字典键 #define A @"a&

灵魂拷问:如何检查Java数组中是否包含某个值 ?

摘自:https://www.cnblogs.com/qing-gee/p/12053156.html 在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题.比如说:如何检查Java数组中是否包含某个值 ?像这类灵魂拷问的主题,非常值得深入地研究一下. 另外,我想要告诉大家的是,作为程序员,我们千万不要轻视这些基础的知识点.因为基础的知识点是各种上层技术共同的基础,只有彻底地掌握了这些基础知识点,才能更好地理解程序的运行原理,做出更优化的产品. 我曾在某个技术论坛上分享过