Avatar billede Hans1 Praktikant
27. juni 2012 - 17:38 Der er 4 kommentarer

Konvertering af navne

Er det muligt at få PHP til at ændre rækkefølgen på følgende navne formater?

Efternavn Fornavn
Efternavn Fornavn Mellemnavn
Efternavn Fornavn Mellemnavn1 Mellemnavn2

Til følgende:

Fornavn Efternavn
Fornavn Mellemnavn Efternavn
Fornavn Mellemnavn1 Mellemnavn2 Efternavn

Den skal altså kunne konvertere gøre det selv om det kan varierer med antal mellemnavne.
Avatar billede olebole Juniormester
27. juni 2012 - 19:05 #1
<ole>

Det kunne gøres med lidt array funktioner:

$s = 'Efternavn Fornavn Mellemnavn1 Mellemnavn2';
$a = explode(' ', $s);
array_push($a, array_shift($a));

var_dump($a);

/mvh
</bole>
Avatar billede olebole Juniormester
27. juni 2012 - 19:15 #2
- og så kan du samle array'et igen:

$s = 'Efternavn Fornavn Mellemnavn1 Mellemnavn2';
$a = explode(' ', $s);
array_push($a, array_shift($a));
$s = implode(' ', $a);

echo $s;

explode  splitter en streng (andet argument) til et array over et tegn eller streng (første argument).

array_shift fjerner det første element i et array og returnerer det.

array_push indsætter et element (andet argument) i slutningen af et array (første argument).

implode gør det modsatte af explode: Den samler et array (andet argument) omkring et tegn eller streng (første argument).
Avatar billede Hans1 Praktikant
30. juni 2012 - 13:05 #3
Tak for svar.
Fandt lige også denne mulighed :)


$s = 'Efternavn Fornavn Mellemnavn1 Mellemnavn2';
list($fname, $lname) = split(' ', $s,2);
echo $fname . ' ' . $lname;
Avatar billede olebole Juniormester
30. juni 2012 - 13:25 #4
Ja, men den returnerer "Efternavn Fornavn Mellemnavn1 Mellemnavn2" - hvilket jo ikke er ønskeligt  =)

En fordel ved #1 er desuden, at den ikke er afhængig af antal af mellemnavne
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

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