2010-08-16 50 views
1

我希望做一些切割名字如:PHP:顯示首字爲姓氏

亞歷克斯·安德森

爲大寫空間(名字)之後第一個字「A」像這樣:

亞歷A.

現在它顯示s這樣的全名:

echo $data["full_name"]; 

希望你明白我的意思。

回答

2

你隱約說明,但據我所知,你可以這樣做:

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

這會縮短除第一個名稱以外的所有名稱。

0

對於只有兩個名字

preg_replace('/^([A-Z][a-z]+)\s([A-Z])([a-z]+)$/', "\$1 \$2.", $data["full_name"]) 
0
list($fname, $sname) = explode(' ', $data["full_name"]); 
$sname = strtoupper(substr($sname, 0, 1)); 
$new_name = $fname . $sname . '.'; 
0
$nameParts = explode(' ', $data['full_name']); 
$lastName = substr(array_pop($nameParts), 0, 1) . '.'; 
$firstNames = implode(' ', $nameParts); 

echo $firstNames . ' ' . $lastName; 
+0

我收到 警告:SUBSTR()預計參數3長,串在林$ lastName的 – Karem 2010-08-16 13:20:37

+0

給出對不起,混合起來的參數,現在修好了。 – 2010-08-16 13:48:29

0

未經測試:

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

您將不得不將名字和姓氏存儲在不同的變量中,因爲您永遠無法知道第二個名字在什麼位置。

您可以使用方括號來訪問變量的第一個字母。

$data[0]; 
0

簡單明瞭:

list($forename, $surname) = explode(' ', $data['full_name']); 
echo $forename . ' ' . $surname[0] . '.'; 
0
$name = "Alex Andersson"; 
$name_arr = explode(" ", $name); 
echo ucfirst($name_arr[0])." ".strtoupper($name_arr[1][0]);