为了账号安全,请及时绑定邮箱和手机立即绑定

在线等!将又键构成的字符串, 替换为相对应的值, 或者说是一次性取多个数组的值, 这个用PHP该怎么写?万分感谢

在线等!将又键构成的字符串, 替换为相对应的值, 或者说是一次性取多个数组的值, 这个用PHP该怎么写?万分感谢

暮色呼如 2019-08-21 19:45:56
问题:$s="1,2,3,4";$a=[1=>'一',2=>'二',3=>'三',4=>'四'];最重要达到的效果:"一,二,三,四"PHP7以上再备注一下吧:一行代码,一行代码实现效果.
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

代码
$s="1,2,3,4";
$a=[1=>'一',2=>'二',3=>'三',4=>'四'];
$arr=[];
foreach(explode(',',$s)as$key){
$arr[]=$a[$key];
}
echoimplode(',',$arr);
结果
一,二,三,四
                            
查看完整回答
反对 回复 2019-08-21
?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

可以用数组函数
$result=array_map(function($arrayKey)use($a){
return$a[$arrayKey]??null;
},explode(',',$s));
$result=implode(',',$result);
或者
$result=array_reduce(explode(',',$s),function($result,$item)use($a){
return$result.="{$a[$item]},";
},'');
$result=trim($result,',');
或者
$result=array_intersect_key($a,array_combine(explode(',',$s),explode(',',$s)));
$result=implode(',',$result);
没有更精简的方式了,php并没有提供一次获取多个key的值的函数,只能自己封装一下,以上方式更推荐第一种,逻辑清楚效率高
                            
查看完整回答
反对 回复 2019-08-21
  • 2 回答
  • 0 关注
  • 270 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号