【发布时间】:2020-08-06 16:56:16
【问题描述】:
我想仅使用用户名字的第一个字母和姓氏的第一个字母来显示用户的首字母缩写。 (测试用户 = TU)
即使用户输入前缀或中间名,我如何才能达到此结果? (Mr. Test Middlename User = TU)。
这是我目前的代码(但会根据用户输入显示超过 2 个字母):
public function initials() {
$words = explode(" ", $this->name );
$initials = null;
foreach ($words as $w) {
$initials .= $w[0];
}
return strtoupper($initials);
}
【问题讨论】:
-
你怎么知道一个名字是否有前缀?
-
如果有前缀,我需要添加一些代码来自动删除前缀。也许我可以创建一个包含所有可能前缀的数组,然后从用户名字符串中删除它们(如果它包含任何前缀)?
-
是的,但是您将不得不做出很多假设,
Kiefer William Frederick Dempsey George Rufus Sutherland或Mrs. Carolina Maria de Jesus呢? -
@AbraCadaver 是的,我知道不可能预测每个用户会输入什么作为他们的名字,但我可以接受将“Kiefer William Frederick Dempsey George Rufus Sutherland”转换为“KS”。我也同意将“Bob Sutherland”转换为“BS”。大声笑
-
超出了您的问题范围,但尝试使用动词作为您的方法名称,例如
getIntials...
标签: php arrays string character