Avatar billede gigi1 Nybegynder
06. november 2012 - 18:58 Der er 16 kommentarer

Hjælp til fuldenavne

Hey

Hvordan laver jeg en funktion som omdanner fuldenavne.

Fra: Fornavn mellemnavn1 mellemnavn2 Efternavn

Eller: Fornavn mellemnavn1 Efternavn

Til: Fornavn Efternavn
Avatar billede The_Buzz Novice
06. november 2012 - 19:09 #1
function omdannavne($fornavn,$mellemnavn,$efternavn) {
  $samletnavn = $fornavn . ' ' . $mellemnavn . ' ' . $efternavn;
return $samletnavn;
}

$samletnavn = omdannavne($fornavn,$mellemnavn,$efternavn);
Avatar billede gigi1 Nybegynder
06. november 2012 - 19:13 #2
Du har misforstået mig, der vil jo ikke altid være et mellemnavn.

Er dette den bedste løsning?



$mirror_var = 'Fornavn mellemnavn1 mellemnavn2 Efternavn';

$mirror_array = explode(' ', $mirror_var);

$num = (count($mirror_array) - 1);

echo $mirror_array[0] . ' ' . $mirror_array[$num];
Avatar billede gigi1 Nybegynder
06. november 2012 - 19:23 #3
Hvis jeg i stedet ville udskrive med kun et mellemnavn.
Hvordan kunne jeg så gøre i forhold til mit tidligere indlæg?
Avatar billede The_Buzz Novice
06. november 2012 - 19:28 #4
oh jo så ville jeg explode på navnet på mellemrum, men først lige replace alle dobbelt mellemrum med enkelt mellemrum.

Jeg vil mene din løsning burde virke
Avatar billede gigi1 Nybegynder
06. november 2012 - 19:49 #5
Hvad hvis jeg også ville have det sidste mellemnavn på?
Avatar billede gsa Nybegynder
06. november 2012 - 20:04 #6
#5, så undlader du bare at sortere og printer fulde input?
Avatar billede olebole Juniormester
06. november 2012 - 20:21 #7
<ole>

Du kunne prøve:

$parts = preg_split('/\s+/', $mirror_var);
$last_name = array_pop($parts);
$name = $parts[0] .' '. (count($parts)>2 ? end($parts).' '.$last_name : $last_name);

echo $name;

/mvh
</bole>
Avatar billede lclemens Nybegynder
06. november 2012 - 23:39 #8
Man kunne også hente efternavnene ud sådan her:

implode(' ', array_slice($parts, -$antal_efternavne));
Avatar billede gigi1 Nybegynder
07. november 2012 - 11:19 #9
lclemens> Det ville jo ikke virke hvis personen ikke havde et mellemnavn. Så ville den udskrive fornavn fornavn efternavn
Avatar billede gigi1 Nybegynder
07. november 2012 - 11:22 #10
olebole> Din virker kun hvis personen har mere en ét mellemnavn.
Hvis en person kun har et mellemnavn udskriver den kun fornavn og efternavn.
Avatar billede lclemens Nybegynder
07. november 2012 - 11:42 #11
Så må du improvisere lidt

array_shift($parts).' '.implode(' ', array_slice($parts, -$antal_efternavne));
Avatar billede olebole Juniormester
07. november 2012 - 17:56 #12
Spørgsmålet handler om, hvordan man undgår at få udskrevet mellemnavne. Efterfølgende ændrede du så opgaven til, at det sidste mellemnmavn skulle udskrives, hvis der var mere end ét.

Kan du ikke lige forklare, hvad opgaven faktisk går ud på?
Avatar billede gigi1 Nybegynder
08. november 2012 - 17:21 #13
Det er godt nok. Tak for hjælpen.
Avatar billede olebole Juniormester
08. november 2012 - 17:29 #14
Hvad var opgaven? Det er jo ikke uvigtigt for fremtidige læsere, at de ved, hvad tråden handler om - og hvad det er, der 'er godt nok'  =)
Avatar billede gigi1 Nybegynder
08. november 2012 - 19:29 #15
Først var opgaven kun at få fat på fornavn og efternavn.
Lige meget om brugeren ikke havde noget mellemnavn eller havde et eller to. Det fandt jeg selv løsningen på.

Derefter kunne jeg så godt tænke mig mellemnavnet men kun det sidste mellemnavn personen havde. Lige meget om personen ikke havde noget eller havde et eller to. (Det ligger jo i en tabel så det bliver udskrevet via en løkke)

Men til sidst skulle jeg så alligevel kun bruge fornavn og efternavn =)
Avatar billede gigi1 Nybegynder
06. december 2012 - 16:33 #16
lclemens smid svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester