PHP:显示姓氏的第一个单词

时间:2010-08-16 13:11:50

标签: php

我想制作一些名称缩小的东西,例如:

  

Alex Andersson

将空格(名字)后的第一个单词大写为“A”,如下所示:

  

Alex A。

现在它显示如下全名:

echo $data["full_name"]; 

希望你理解我的意思。

8 个答案:

答案 0 :(得分:2)

你模糊地描述了它,但据我所知,你可以做类似的事情:

$names = explode(" ", $data["full_name"]);
foreach ($names as $key => $name)
{
  if ($key == 0)
    continue;
  $names[$key] = substr($name, 0, 1).'.';
} 
echo implode(" ", $names);

这缩短了除第一个名字之外的所有名称。

答案 1 :(得分:1)

您必须将名字和姓氏存储在不同的变量中,因为您永远无法知道第二个名称的位置。

您可以使用方括号访问变量的第一个字母。

$data[0];

答案 2 :(得分:0)

只有两个名字

preg_replace('/^([A-Z][a-z]+)\s([A-Z])([a-z]+)$/', "\$1 \$2.", $data["full_name"])

答案 3 :(得分:0)

list($fname, $sname) = explode(' ', $data["full_name"]);
$sname = strtoupper(substr($sname, 0, 1));
$new_name = $fname . $sname . '.';

答案 4 :(得分:0)

$nameParts = explode(' ', $data['full_name']);
$lastName = substr(array_pop($nameParts), 0, 1) . '.';
$firstNames = implode(' ', $nameParts);

echo $firstNames . ' ' . $lastName;

答案 5 :(得分:0)

未测试:

shortened = substr($data["full_name"], 0, strpos($data["full_name"], " ") + 1) + ".";

答案 6 :(得分:0)

简单明了:

list($forename, $surname) = explode(' ', $data['full_name']);
echo $forename . ' ' . $surname[0] . '.';

答案 7 :(得分:0)

$name = "Alex Andersson";
$name_arr =  explode(" ", $name);
echo ucfirst($name_arr[0])." ".strtoupper($name_arr[1][0]);