лучший способ сделать это (вероятно, используя array_map)

#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. при этом используется передача по ссылке во время вызова, которая устарела