Php 在特定子字符串之后的字符串末尾隔离子字符串
我的查询生成UID值的结果集,如下所示:Php 在特定子字符串之后的字符串末尾隔离子字符串,php,mysql,split,substring,explode,Php,Mysql,Split,Substring,Explode,我的查询生成UID值的结果集,如下所示: 855FM21 855FM22 etc 我想从UID中分离出最后一个数字,这可以通过拆分字符串来完成 如何在子字符串“FM”之后拆分此字符串?要在子字符串“FM”之后拆分此字符串,请使用分隔符asFM。喜欢 $uid = "855FM22"; $split = explode("FM",$uid); var_dump($split[1]); 你试过php的爆炸功能吗 您可以使用explode()方法 使用explode函数返回数组。要获取最后一个索引
855FM21
855FM22
etc
我想从UID中分离出最后一个数字,这可以通过拆分字符串来完成
如何在子字符串“FM”之后拆分此字符串?要在子字符串“FM”之后拆分此字符串,请使用分隔符as
FM
。喜欢
$uid = "855FM22";
$split = explode("FM",$uid);
var_dump($split[1]);
你试过php的爆炸功能吗 您可以使用explode()方法
使用explode函数返回数组。要获取最后一个索引,请使用echo$array[count$array)-1]
对于它,请使用php的explode函数
$UID = "855FM21";
$splitToArray = explode("FM",$UID);
print_r($splitToArray[1]);
您还可以使用正则表达式提取最后的数字
一个简单的例子
$uid = '1234FM56';
preg_match( '/[0-9]+fm([0-9]+)/i', $uid, $arr );
print_r($arr); //the number is on index 1 in $arr -> $arr[1]
作为一种最佳实践,永远不要从mysql查询中要求超出实际使用范围的内容。拆分
uid
的操作可以在查询本身中完成——这可能就是我要做的
SELECT SUBSTRING_INDEX(uid, 'FM', -1) AS last_number FROM `your_tablename`
如果需要分解,那么实践将指示explode()
的第三个参数应设置为2
。这样,函数就不会浪费任何额外的精力寻找更多出现的FM
echo explode('FM', $uid, 2)[1]; // 21
如果您想使用php隔离uid中的尾随数字,但出于某种原因不想使用explode()
,以下是一些更古怪/效率更低的技术:
$uid = '855FM21';
echo strtok($uid, 'FM') ? strtok('FM') : ''; // 21
echo preg_replace('~.*FM~', '', $uid); // 21
echo ltrim(ltrim($uid, '0..9'), 'MF'); // 21
这个确切的建议已经在14分钟前发布,并存在于公认的答案中。此答案不会给页面增加新的价值。此手册参考可作为问题下的注释提供。Stack Overflow不希望成为流量路由器,它希望将已发布问题的特定答案硬编码到此页面上的答案中。
SELECT SUBSTRING_INDEX(uid, 'FM', -1) AS last_number FROM `your_tablename`
echo explode('FM', $uid, 2)[1]; // 21
$uid = '855FM21';
echo strtok($uid, 'FM') ? strtok('FM') : ''; // 21
echo preg_replace('~.*FM~', '', $uid); // 21
echo ltrim(ltrim($uid, '0..9'), 'MF'); // 21