数组翻译

 

/**
 * 功能:把数组的key和value翻译成中文,也可以只翻译key或者只翻译value,也可以隐藏部分字段不输出。
 * @param array $arr   ['name'=>'tom','user_id'=>1,'mobile'=>15912345678]
 * @param array $map   ['name'=>'姓名','user_id'=>'用户id','delete--mobile']
 * @param       $type 默认0替换key和value,等于1替换key,等于2替换value
 *
 * @return array
 */
function array_translate(array $arr, array $map, $type = 0)
{
    if (!is_array($arr)) {
        return $arr;
    }
    $tempArray = array();
    foreach ($arr as $key => $value) {
        // 处理数组的键,翻译成中文
        $key_before = $key;
        $key        = (in_array($type, [0, 1]) && array_key_exists((string)$key, $map)) ? $map[$key] : $key;
        if (is_array($value)) {
            $value = array_translate($value, $map);
        } else {
            //处理数组的value,翻译成中文
            $value = (in_array($type, [0, 2]) && array_key_exists((string)$value, $map)) ? $map[$value] : $value;
            //特殊值处理
            $kk = $key_before . '#' . $value;
            if (array_key_exists($kk, $map)) {
                $value = $map[$kk];
            }
        }
        //删除不显示的选项
        if (!array_key_exists('delete--' . $key, $map)) {
            $tempArray[$key] = $value;
        }
    }
    return $tempArray;
}

测试一下:
$arr = ['name'=>'tom','user_id'=>1,'mobile'=>15912345678,'hobby'=>'football'];
$map = ['name'=>'姓名','user_id'=>'用户id','delete--mobile'=>1,'hobby'=>'爱好','football'=>'足球'];
$res = DP_array_translate($arr,$map);
print_r($res);


返回值:
Array
(
    [姓名] => tom
    [用户id] => 1
    [爱好] => 足球
)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值