Php 如果中间名有两个单词,如何将中间名显示为中间首字母

Php 如果中间名有两个单词,如何将中间名显示为中间首字母,php,substr,Php,Substr,因此,我创建了一个表单,其中包含中间名字段,并将中间名显示为首字母 preg\u split(“/[\s,[-]+/”,$data[“s\u mname]”) 如果中间名只有一个单词,则此代码有效。。像斯诺一样,它将显示为S,但我的问题是,如果中间名是两个单词,如De Leon,Delos Santos,则将显示的首字母是DL,DS。。但它应该显示为D。。。你知道怎么做吗 SUBSTR($data[“s_mname”]、strrchr($data[“s_mname”]、“”),1) 我试过这个代

因此,我创建了一个表单,其中包含中间名字段,并将中间名显示为首字母

preg\u split(“/[\s,[-]+/”,$data[“s\u mname]”)

如果中间名只有一个单词,则此代码有效。。像斯诺一样,它将显示为S,但我的问题是,如果中间名是两个单词,如
De Leon
Delos Santos
,则将显示的首字母是DL,DS。。但它应该显示为D。。。你知道怎么做吗

SUBSTR($data[“s_mname”]、strrchr($data[“s_mname”]、“”),1)

我试过这个代码,但没有效果,我只是从其他网站上得到的。

使用
explode()
如下:-

preg_split("/[\s,_-]+/",explode(' ',$data["s_mname"])[0])
输出:-


试试这段代码,你可以根据需要使用它

preg\u split(“/[\s,[-]+/”),explode(“”,$data[“s\u mname]”)[0])
@LionSmith很高兴能帮助你。是的。。回答这个问题需要10分钟D
preg_match_all('/\s\w/', $data["s_mname"], $matches, PREG_SET_ORDER);
/*echo end($matches)[0];*/
echo $matches[0][0];