Как многие рекомендуют мне отделять имя и фамилию вместо «full_name» со всем, как я могу отделить их от каждой переменной, поэтому, если вы, например, введите в поле: «Dude Jackson «затем« Чувак »попадает в $ firstname и Jackson в $ lastname.PHP: Отделить одно поле в два
ответ
Предполагая, что первое имя всегда приходит первым и нет отчества:
list($firstname, $lastname) = explode(' ', $full_name);
Это просто взрывает $full_name
в массив, содержащий две строки, если они разделены только одним пробелом, и отображает их на первый и соответственно.
Вы можете сделать:
list($first_name,$last_name) = explode(' ',$full_name);
Это предполагает, что вы полное имя содержит имя и фамилию, разделенные одним пробелом.
РЕДАКТИРОВАТЬ:
В случае, если Lastname нет, вышеупомянутый способ дать предупреждение о undefined offset
. Чтобы преодолеть это, вы можете использовать альтернативный метод:
if(preg_match('/^(\S*)\s*(\S*)$/',$full_name,$m)) {
$first_name = $m[1];
$last_name = $m[2];
}
$full_name = "Dude Jackson";
$a = explode($full_name, " ");
$firstname = $a[0];
$lastname = $a[1];
вы должны взорвать значение в его части, используя пространство в качестве разделителя
Это невозможно сделать с 100% точностью, поскольку первое/последнее имя содержит больше информации, чем одно «полное имя». (Полное имя может включать в себя средние имена, инициалы, заголовки и т. Д. Во многих разных заказах.)
Если вам просто нужно быстро исправить устаревшую базу данных, возможно, будет разорвано первое пространство.
Я не PHP программист, но для быстрого решения, без потери данных,
$full_name = "Dude Jackson";
$a = explode($full_name, " ");
$firstname = $a[0];
$count = 1;
$lastname = "";
do {
$lastname .= $a[$count]." ";
$count++;
} while($count<count($a));
$lastname = trim($lastname);
Это должно спасти всю оставшуюся часть имени в $ LastName, должно быть полезно для имен, таких как «Roelof ван дер Мерве ». Кроме того, вы можете вставлять чеки для $ full_name только как имя, без фамилии.
Взрыв ($ full_name, "", 2) ;-) –
вы просто попали в гвоздь на голове :) –
Это код/решение
$full_name = "Dude Jackson";
$a = explode($full_name, " ",1);
if(count($a) == 2)
{
$firstname = $a[0];
$lastname = $a[1];
}
if(count($a) < 2)
{
$firstname = $full_name;
$lastname = " ";
}
Если фамилия нет, вы можете по-прежнему список ($ first_name, $ last_name) делать = взорваться (' ' $ FULL_NAME.'); –