2010-05-26 4 views
2

Если я массив структурированы следующим образом:разрушающиеся вложенные массивы

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

Есть простой способ взрывать его в нечто вроде first_name last_name, first_name last_name и т.д. для всех индексов?

Implode, похоже, не делает то, что я хотел для чего-то подобного. В настоящее время я просто перебираю все это, но это ЗНАЧИТЕЛЬНОЕ узкое место.

+0

Как настроить массив? Это может быть более эффективным, чтобы позаботиться о нем, а затем вместо цикла через массив. – Joseph

+0

У меня нет никакого контроля над тем, как настроен массив, он возвращается из API веб-сайта –

ответ

2
function combineFirstLastName($user) { 
    return $user['first_name'] . ' ' . $user['last_name']; 
} 

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

Если вы используете PHP> = 5.3, вы можете использовать анонимную функцию.

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

Я не уверен, что вы получите гораздо больше улучшения скорости. Вы считаете opcode caching?

+0

Нет, у меня нет - я довольно новичок в PHP. Оглядываясь на документацию вкратце, похоже, вам нужно заранее установить ее на сервере. Это верно? У меня нет доступа root - мое веб-пространство предоставляется через хостинг-провайдера. –

+0

@Alex Zylman, проверьте ['phpinfo'] (http://us.php.net/phpinfo). Возможно, у вас уже установлены расширения. – strager

+0

@strabger, в phpinfo есть много вещей, и я не совсем уверен, где искать, но я просмотрел все это, и ничего не вышло. Я также сделал ctrl + f для apc без везения. –

Смежные вопросы