Alex Zylman
Alex Zylman

Reputation: 920

Imploding nested arrays

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.

Upvotes: 2

Views: 433

Answers (1)

strager
strager

Reputation: 90022

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?

Upvotes: 2

Related Questions