Loading...
การแยก คำนำหน้าชื่อ ชื่อ สกุล ด้วย php
ผู้เขียน : กฤษฎาพงษ์ สุตะ
เผยแพร่เมื่อ : 5 พฤศจิกายน 2565 23:51:45 ปรับปรุงเมื่อ : 6 พฤศจิกายน 2565 14:17:00
ลิงก์ : https://www.ef101.xyz/บทความ/การแยก-คำนำหน้าชื่อ-ชื่อ-สกุล-ด้วย-php
เผยแพร่เมื่อ : 5 พฤศจิกายน 2565 23:51:45 ปรับปรุงเมื่อ : 6 พฤศจิกายน 2565 14:17:00
ลิงก์ : https://www.ef101.xyz/บทความ/การแยก-คำนำหน้าชื่อ-ชื่อ-สกุล-ด้วย-php
วันนี้เอาปัญหาที่เจอมาเล่นให้อ่านอีกแล้วครับ เนื่องจากจะพัฒนาเว็บ ที่เดิมเขียนแบบ Hard Core มาใช้ Laravel โดยการนำข้อมูลมาด้วย
ปัญหามีอยู่ว่า เว็บเดิม เก็บ คำนำหน้าชื่อ ชื่อ สกุล ไว้ใน ฟิลด์ เดียว ทำให้บางครั้ง user ไม่ได้กรอก คำนำหน้าชื่อ เว็บใหม่เลยแยกเป็น prefix firstname และ lastname เลยต้องมาเขียนโค๊ดแยกออกจากชื่อ
ใครที่เจอปัญหานี้ลองเอาไปปรับใช้ได้ครับ
$i = 0;
while ($data = mysqli_fetch_assoc($result)) {
$i++;
$list = preg_split("/[\s]+/", trim($data["name"])); //แยกชื่อกับสกุล
$firstname = "";
$lastname = "";
if (!empty($list[0])) {
$firstname = $list[0];
}
if (!empty($list[1])) {
$lastname = $list[1];
}
if (!empty($list[2])) { // กรณีเจอ ว่าที่ ร.ต. (มีช่องว่างหลัง ว่าที่)
$firstname = $list[0] . $list[1];
$lastname = $list[2];
}
$prefix_arr = [
//ค้นหา => ใช้ในระบบใหม่
"นาย" => "นาย",
"นางสาว" => "นางสาว",
"นาง" => "นาง",
"น.ส." => "นางสาว",
"ว่าที่ร.ต." => "ว่าที่ ร.ต.",
"ว่าที่ร.ท." => "ว่าที่ ร.ท.",
"ว่าที่ร.อ." => "ว่าที่ ร.อ.",
"ว่าที่ร้อยตรี" => "ว่าที่ ร.ต.",
"ว่าที่ร้อยโท" => "ว่าที่ ร.ท.",
"ว่าที่ร้อยเอก" => "ว่าที่ ร.อ.",
//เพิ่มเติม คำหน้าชื่อที่เจอในระบบ
"จ.ส.ต." => "จ.ส.ต.",
"สิบเอก" => "สิบเอก",
];
$prefix = "";
foreach ($prefix_arr as $key => $val) {
if (strpos($firstname, $key) !== false) {
$prefix = $val;
$firstname = str_replace($key, "", $firstname); //ลบคำนำหน้าชื่อออก
continue;
}
}
echo "{$data['id']}.{$prefix}++{$firstname}++{$lastname}<br>";
}
echo "total : " . $i;
ความคิดเห็น :
เข้าสู่ระบบก่อนจึงจะแสดงความคิดเห็นได้
ค้นหา
หมวดหมู่
5 บทความล่าสุด
แท็ก