标签:直接 data map each @param 数组 set 指定 col
/** * 根据配置转换数组中的键名 * @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 ] ]
标签:直接 data map each @param 数组 set 指定 col
原文地址:https://www.cnblogs.com/lzs-888/p/11465094.html