Ich lese eine Textdatei mit einigen Namensinkonsistenzen. Zum Beispiel habe ich Namen wie:Gibt es eine einfachere Möglichkeit, Suffixe in Namen zu korrigieren?
MILLER, WALTER MCNAB IV
DUPONT, THOMAS B. II
HARDEWAY, GRANT U. SR.
Wie man sehen kann ich den Namen nach Vornamen und Nachnamen sind jedoch die Suffixe falsch platziert aufspalten. Im Idealfall sollten die Namen sein:
WALTER MCNAB MILLER IV
THOMAS B. DUPONT II
GRANT U. HARDEWAY SR.
Dass dies gesagt ist, was ich habe, aber ich fühle Im über einfach etwas zu verkomplizieren. Irgendwelche Tipps?
private function extractFullName($name){
//I cant do V since V could be someone's middle initial also :(
$suffix = collect(['II', 'III', 'IV', 'JR.', 'SR.']);
// lets first assemble a full name from the row
$fullNameArray = explode(",", $name);
$firstName=trim($fullNameArray[1]);
$lastName=trim($fullNameArray[0]);
//lets look at the FIRST NAME for II/III/IV/JR./SR.
$suffix = $suffix->each(function ($item, $key) use ($firstName, $lastName) {
if (strpos($firstName, " ".$item)){
$firstName = preg_replace('/'.$item.'$/', '', $firstName);
$lastName.=' '.$item;
return false;
}
});
//Basically arranging it in a 'firstname lastname II/III/IV/JR./SR.' format
$name = $firstName." ".$lastName);
$name = ucwords(strtolower($lawyerName));
return $name;
}
Ich stimme für das Schließen dieser Frage als Off-Topic, weil es auf http://codereview.stackexchange.com/ gehört, da Sie fragen, wie es zu verbessern, nicht das Problem zu lösen. –
http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/ https://en.wikipedia.org/wiki/ Prince_ (Musiker) –
CD001