tags:

views:

56

answers:

1

Hey guys,

If I have an array structured like this:

$array[index]['first_name']
$array[index]['last_name']

Is there an easy way to implode it into something like first_name last_name,first_name last_name, etc. for all the indices?

Implode didn't seem to do what I wanted for something like this. Currently I'm just looping over the whole thing, but it's a SIGNIFICANT bottleneck.

+1  A: 
function combineFirstLastName($user) {
    return $user['first_name'] . ' ' . $user['last_name'];
}

$firstLastNames = array_map('combineFirstLastName', $array);

If you're using PHP >= 5.3, you can use an anonymous function.

$firstLastNames = array_map(function($user) {
    return $user['first_name'] . ' ' . $user['last_name'];
}, $array);

I'm not sure you'll get much more of a speed improvement, though. Have you considered opcode caching?

strager
No, I haven't - I'm pretty new to PHP. Looking over the documentation briefly, it looks like you need to install it ahead of time on the server. Is that correct? I don't have root access - my webspace is provided through a hosting provider.
Alex Zylman
@Alex Zylman, Check [`phpinfo`](http://us.php.net/phpinfo). You may have the extensions installed already.
strager
@strabger, there's a lot of stuff listed in phpinfo and I'm not exactly sure where to look, but I scanned through the whole thing and nothing stood out. I also did a ctrl+f for apc with no luck.
Alex Zylman