企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] # 需求 我们现在在机场有一些登机口需要拆分开来 ~~~ $gates=[ 'BaiYun_A_A17', 'BeiJing_J7', 'ShuangLiu_K203', 'HongQiao_A157', 'A2', 'BaiYun_B_B230' ]; ~~~ 变成 ~~~ $boards=[ 'A17', 'J7', 'K203', 'A157', 'A2', 'B230' ]; ~~~ 我们要取每个元素的_后面的部分 # 第一种 遍历每个元素对每个元素中_进行找寻,找到了就对这部分截取 ~~~ $rel=collect($gates)->map(function($gates){ $underscorePosition=strrpos($gates,'_'); $offset=$underscorePosition+1; return mb_substr($gates,$offset); }); ~~~ 但是缺点就是有个A2,他变成了2,我们想取A2,变2的原因是我们没有找到_但是我们mb_string了 改进 ~~~ $rel=collect($gates)->map(function($gates){ //判断这个字符串有没有包含_ if (strrpos($gates,'_')===false) { return $gates; } $underscorePosition=strrpos($gates,'_'); $offset=$underscorePosition+1; return mb_substr($gates,$offset); }); ~~~ # 第二种 ~~~ $rel=collect($gates)->map(function($gates){ //切割数组 $parts=explode('_',$gates); //取最后一个元素 return end($parts); }); ~~~ ~~~ //主要这样是不可以的end里面要是个变量, //不能是函数返回的结果,php书册看 //return end(explode('_',$gates)); ~~~ # 第三种 ~~~ $rel=collect($gates)->map(function($gates){ return collect(explode('_',$gates))->last(); })->toArray(); ~~~