Misschien is het wel een hele omweg, maar okee:
<?php
$naam = 'Jan Willem Hendrik';
$array = explode(' ', $naam);
foreach($array as $key => $value)
{
$array[$key] = ucfirst(substr($value, 0, 1)) . '.';
}
$initialen = implode('', $array);
echo $initialen;
?>
SanThe, kan nog iets makkelijker denk ik? (niet getest!)
<?php
$namen = 'Jan Willem Hendrik';
$namen = explode(' ', $namen);
$initialen = '';
foreach ($namen as $initiaal) {
$initialen .= strtoupper($initiaal[0]) . '. ';
}
echo $initialen;
?>
SanThe,
Bedankt. Het werkt.
Of dit:
<?php
$naam = 'Jan Willem Hendrik';
preg_match_all('|\s(\w)|', $naam, $initialen);
$initialen = implode('.', $initialen[1]);
echo $initialen; // 'J.W.H'
?>
@Wouter: Geeft bij mij W.H dus eerste letter mist en laatste punt mist.
Wouter J
04-11-2012 14:24
gewijzigd op 04-11-2012 14:24
Ah, natuurlijk dom van me. Hij moet dan zo worden:
<?php
$naam = 'Jan Willem Hendrik';
preg_match_all('|\b(\w)|', $naam, $initialen);
$initialen = implode('.', $initialen[1]).'.';
echo $initialen; // 'J.W.H.'
?>