사용자 이름을 이름과 성으로 나눠야하지만 이름에 얼마나 많은 요소가 있을지 모르겠습니다. 작동 코드가 있지만 최적화 할 수있는 것처럼 보입니다.얼마나 많은 요소가 있는지 모른다면 PHP 문자열 분리하기
아무에게도이 제안을 좀 더 우아하게 만들 수 있습니까?
function createMoodleUserNames($fullname){
$names = explode(' ',$fullname);
$prefixes = array('Dr.','Ms.','Mr.','Mrs.');
$names = explode(' ',$name);
$i = 0;
if(in_array($names[0],$prefixes)){
$firstname = $names[0].' '.$names[1];
unset($names[0]);
unset($names[1]);
}else{
$firstname = $names[0];
unset($names[0]);
}
$lastname = '';
while($i < count($names)){
$lastname .= ' '.$names[$i];
$i++;
}
$output = array();
$output[0] = $firstname;
$output[1] = $lastname;
return $output;
}
while 루프 바로 전에 $ names = array_values ($ names);를 추가하십시오. 배열 인덱스를 설정 해제하면 인덱스 자체가 재설정되지 않습니다. 이것은 그들이 루프 이전에 있는지 확인합니다. – trickyzter
감사합니다 - "$ names = array_values ($ names);" 나는 어려운 길에서 그 하나를 발견했다 :) –
우리 모두하지 않았나요? ;) – trickyzter