Avatar billede kryster Nybegynder
23. januar 2003 - 18:42 Der er 6 kommentarer og
1 løsning

Forkort navn til initialer.

Hvordan kan det gøres.
Lad os sige mit output fra databasen har følgende navne.
Christer Rasmussen
Hans Peter Jensen
Jean-Marc Dion
Knud D Hansen
Men jeg vil kun have udskrevet.
CR, HPJ, JMD, KDH

Det jeg selv kom frem til se sådan ud, men finder kun 1 mellemrum og ikke "-"

function printinit ($name) {
  echo strtoupper($name{0});
  $space = strpos($name, " ");
  echo strtoupper($name{($space+1)});
}
while($row = mysql_fetch_array($result)) {
?>
  <tr>
    <td><?printinit($row["navn"])?></td>
  </tr>
<?           
}

Hvordan kan funktionen laves?
Avatar billede Slettet bruger
23. januar 2003 - 18:46 #1
function initial($name)
{
  $parts = explode(" ", $name);
  foreach($parts as $value)
  {
      $initial .= $parts[0];
  }
  return $initial;
}
Avatar billede jensgram Nybegynder
23. januar 2003 - 18:52 #2
function initial($name)
{
  $parts = explode(" ", $name);
  foreach($parts as $value)
  {
      $parts = explode("-", $name);
      foreach($parts as $value)
      {
          $initial .= $parts[0];
      }
  }
  return $initial;
}


... med lån fra regin. Denne tager både højde for ' ' og '-', men er sikkert ikke særlig "økonomisk"
Avatar billede Slettet bruger
23. januar 2003 - 18:59 #3
<?
function initial($name) {
    $initial = "";
    $word_array = preg_split ("/[\s-]+/", $name);
    foreach($word_array as $word)
        $initial .= substr($word, 0, 1);   
    return strtoupper($initial);
}

echo initial("Christer Rasmussen");
echo initial("Jean-Marc Dion");
?>
Avatar billede jensgram Nybegynder
23. januar 2003 - 19:56 #4
mercur8 > En lidt pænere måde.
Avatar billede kryster Nybegynder
23. januar 2003 - 22:34 #5
Tak for hjælpen.
kan i forklare hvordan "/[\s-]+/" skal forstås, jeg er klar over at det er de tegn den skal splitte på, men hvordan skal det læses?
Split på
\s = Space? og "-"?
hvad så med / og +/

mr noname du kan få 10 point hvis du ligger et svar, jeg har brugt mercur8's løsning men din er jo den samme på en lidt mere simpel men sikkert langsomere måde.
Avatar billede Slettet bruger
23. januar 2003 - 23:28 #6
/ og +/ gør at vi fortsætter med at matche på spaces og - i hele strengen.
Avatar billede kryster Nybegynder
24. januar 2003 - 01:14 #7
Ok. Tak for hjælpen og forklaringen.
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