#php #arrays #array-map
#php #массивы #array-map
Вопрос:
У меня есть эти массивы :
$a = array(
'key1' => array ( 'k1'=>'value1', 'k2'=>'value2' , 'k3'='' ),
'key2' => array ( 'k1'=>'value1', 'k2'=>'value2' , 'k3'='' ),
...
);
и у меня есть другой массив:
$b = array('key1'=>'value array b key 1'),
'key2'=>'value array b key 2'),
...
);
Мне нужно получить значения из массива $ b и поместить в массив $ a в ключе ‘k3’, для этого я использую эту функцию:
foreach($a as $key => $item) {
$a[$key]['key3'] = $b[$key];
}
У меня это работает, но я хотел бы знать, есть ли лучший и более простой способ сделать это, что-нибудь с использованием array_map….
У кого-нибудь есть какая-нибудь идея?
Комментарии:
1. Я думаю, что способ, которым вы это делаете, лучше, чем использование
array_map
Ответ №1:
Ваш код намного проще для понимания. array_walk
(не map, поскольку возвращаемое значение не имеет значения) эквивалентом было бы
array_walk($b, function($el, $k, $a) {$a[$k]['key3'] = $el;}, amp;$a);
Комментарии:
1. при этом используется передача по ссылке во время вызова, которая устарела