我有一个包含客户姓名的数据库,我希望将姓氏与姓名的其余部分分开。
以戴安娜·玛格丽达·保利诺·玛丽亚的名义
如果我用途:
$str = "Diana Margarida Paulino Maria";
// Get Frist and Last Word
$array = explode(" ",$str);
$first_word = $array[0];
$last_word = $array[count($array)-1];
echo $first_word. ', '.$last_word;
这是每一个薄好,并显示戴安娜作为第一个词和玛丽亚作为最后一个词
Even is I use:
function getLastWord($string)
{
$string = explode(' ', $string);
$last_word = array_pop($string);
return $last_word;
}
或者这个
$words = explode( " ", $str );
array_splice( $words, -1 );
echo implode( " ", $words );
在这种情况下,只显示姓名
问题是,如果您从该名称返回一个php msqyl select查询并使用这些函数,则昵称永远不会出现
我直接尝试了mysql查询本身
SELECT substring_index(nome, ' ', 1) as first, substring_index(nome, ' ', -1) as last
而在这个名字的具体情况下(和其他一些-莱安德罗蒙泰罗罗德里格斯菲格雷多;佩德罗·安东尼奥·杜阿尔特·洛佩斯)的绰号仍然没有出现
我用上面的代码与许多其他名称和在几乎所有情况下的昵称是正确的指示
在mysql数据库中,name字段使用utf8_general_ci编码
无论哪种方式都很奇怪,因为我找不到错误的模式
1条答案
按热度按时间rqenqsqc1#
我发现,当人们输入他们的名字时,他们会在名字的末尾多加一个空格。谢谢你的帮助