我希望做一些切割名字如:PHP:顯示首字爲姓氏
亞歷克斯·安德森
爲大寫空間(名字)之後第一個字「A」像這樣:
亞歷A.
現在它顯示s這樣的全名:
echo $data["full_name"];
希望你明白我的意思。
我希望做一些切割名字如:PHP:顯示首字爲姓氏
亞歷克斯·安德森
爲大寫空間(名字)之後第一個字「A」像這樣:
亞歷A.
現在它顯示s這樣的全名:
echo $data["full_name"];
希望你明白我的意思。
你隱約說明,但據我所知,你可以這樣做:
$names = explode(" ", $data["full_name"]);
foreach ($names as $key => $name)
{
if ($key == 0)
continue;
$names[$key] = substr($name, 0, 1).'.';
}
echo implode(" ", $names);
這會縮短除第一個名稱以外的所有名稱。
對於只有兩個名字
preg_replace('/^([A-Z][a-z]+)\s([A-Z])([a-z]+)$/', "\$1 \$2.", $data["full_name"])
list($fname, $sname) = explode(' ', $data["full_name"]);
$sname = strtoupper(substr($sname, 0, 1));
$new_name = $fname . $sname . '.';
$nameParts = explode(' ', $data['full_name']);
$lastName = substr(array_pop($nameParts), 0, 1) . '.';
$firstNames = implode(' ', $nameParts);
echo $firstNames . ' ' . $lastName;
未經測試:
shortened = substr($data["full_name"], 0, strpos($data["full_name"], " ") + 1) + ".";
您將不得不將名字和姓氏存儲在不同的變量中,因爲您永遠無法知道第二個名字在什麼位置。
您可以使用方括號來訪問變量的第一個字母。
$data[0];
簡單明瞭:
list($forename, $surname) = explode(' ', $data['full_name']);
echo $forename . ' ' . $surname[0] . '.';
$name = "Alex Andersson";
$name_arr = explode(" ", $name);
echo ucfirst($name_arr[0])." ".strtoupper($name_arr[1][0]);
我收到 警告:SUBSTR()預計參數3長,串在林$ lastName的 – Karem 2010-08-16 13:20:37
給出對不起,混合起來的參數,現在修好了。 – 2010-08-16 13:48:29