Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PHP Concatenate

8 views
Skip to first unread message

Kevin Davis

unread,
May 21, 2012, 2:47:01 PM5/21/12
to
Hi there,

Here is what I'm trying to do.. I'm trying to merge the first and last name (that I can do) into an email address. But what I'm trying to do is to drop the middle initial. If the entry was from a form, I would have no problem, but the data will be uploaded from a different source, how would I go about dropping the middle initial?

Would I use regex??

Thank you,
Kevin

bill

unread,
May 21, 2012, 3:17:08 PM5/21/12
to
I really hate to ask these because I fear the answers:

will there always be a middle initial ?

Will there be any first or last names with embedded spaces ? (eg
Jean Paul Aloysius Smith ?

bill

Luuk

unread,
May 21, 2012, 3:19:37 PM5/21/12
to Kevin Davis
$name="Kevin R. Davis";
$a=split(" ",$name);
print $a[0]." ".$a[count($a)-1];

It should print:
Kevin Davis

Captain Paralytic

unread,
May 22, 2012, 7:34:23 AM5/22/12
to
You might if you wanted and if the full problem had a decent regex
solution to match it. However as Bill and Luuk have shown, you have
not given enough data in order for us to evaluate it.

Jerry Stuckle

unread,
May 22, 2012, 8:21:27 AM5/22/12
to
What about "John Smith Jr"?

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstu...@attglobal.net
==================

Peter H. Coffin

unread,
May 22, 2012, 9:42:54 AM5/22/12
to
On Tue, 22 May 2012 08:21:27 -0400, Jerry Stuckle wrote:
> On 5/21/2012 3:19 PM, Luuk wrote:
>> On 21-05-2012 20:47, Kevin Davis wrote:
>>> Hi there,
>>>
>>> Here is what I'm trying to do.. I'm trying to merge the first and
>>> last name (that I can do) into an email address. But what I'm
>>> trying to do is to drop the middle initial. If the entry was from a
>>> form, I would have no problem, but the data will be uploaded from a
>>> different source, how would I go about dropping the middle initial?
>>>
>>> Would I use regex??
>>>
>>> Thank you,
>>> Kevin
>>
>> $name="Kevin R. Davis";
>> $a=split(" ",$name);
>> print $a[0]." ".$a[count($a)-1];
>>
>> It should print:
>> Kevin Davis
>
> What about "John Smith Jr"?

Or "Carlos Salinas de Gortari"?

To cut to the important point, "dropping middle initial" is a kind
of simple problem surround by worm-cans with very weak lids. Pretty
much the least damaging thing you can do is drop punctuation and any
single-letter (not single character, just Latin letter) words, using two
passes with regexp processing. Usually if someone has put something into
a field on form asking for their name, whatever they've put there is
important to them.

You'll still piss off will.i.am of The Black-Eyed Peas even with that
simple step.

--
Never correct Halloween decorations where the guidance counselor can see.
It makes for very tedious conversations later.

Paul Herber

unread,
May 22, 2012, 10:21:08 AM5/22/12
to
and anyone with the surname De'Ath.



--
Regards, Paul Herber, Sandrila Ltd.
http://www.sandrila.co.uk/

The Natural Philosopher

unread,
May 22, 2012, 11:37:50 AM5/22/12
to
He assisted with my late mothers will, did Mr De'Ath. Genuinely!

>


--
To people who know nothing, anything is possible.
To people who know too much, it is a sad fact
that they know how little is really possible -
and how hard it is to achieve it.

Luuk

unread,
May 22, 2012, 2:18:41 PM5/22/12
to
~/tmp> cat surname.php
<?php
$name="Kevin R. De'Ath";
$a=split(" ",$name);
print $a[0]." ".$a[count($a)-1];
?>

~/tmp> php surname.php
Kevin De'Ath
~/tmp>

But, of course, this method is not perfect and/or complete.

But where is the OP.....?

Why does not he/she give a clue about what is expected?

Luuk

unread,
May 22, 2012, 2:30:45 PM5/22/12
to
<?php
$name="Kevin R. De'Ath";
$a=split(" ",$name);
print $a[0]." ".$a[count($a)-1];
print "\n";

// Second solution, so J. R. R. Tolkien is also handled correctly
$name="J. R. R. Tolkien";
$a=split(" ",$name);
for ($f=0; $f<count($a); $f++)
if (substr($a[$f],strlen($a[$f])-1,1)!="." or $f==0) print
$a[$f]." ";
print "\n";

?>


output:
Kevin De'Ath
J. Tolkien

Nick Brooks

unread,
Jun 5, 2012, 2:33:31 AM6/5/12
to
Cool stuff guys!
0 new messages