Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在特定子字符串之后的字符串末尾隔离子字符串_Php_Mysql_Split_Substring_Explode - Fatal编程技术网

Php 在特定子字符串之后的字符串末尾隔离子字符串

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函数返回数组。要获取最后一个索引

我的查询生成UID值的结果集,如下所示:

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