2011-04-06 2 views
2

Je possède ce tableaux:une meilleure façon de le faire (probablement en utilisant array_map)

$a = array(
     'key1' => array ('k1'=>'value1', 'k2'=>'value2' , 'k3'=''), 
     'key2' => array ('k1'=>'value1', 'k2'=>'value2' , 'k3'=''), 
     ... 
     ); 

et j'ai un autre tableau:

$b = array('key1'=>'value array b key 1'), 
      'key2'=>'value array b key 2'), 
      ... 
     ); 

J'ai besoin pour obtenir les valeurs de tableau $ b et rangea un $ dans la clé « k3 », j'utilise cette fonction pour le faire:

foreach($a as $key => $item) { 
    $a[$key]['key3'] = $b[$key]; 
} 

Ses œuvres pour moi, mais je voudrais savoir s'il y a un meilleure et plus simple façon de le faire, quelque chose en utilisant array_map ....

Quelqu'un a une idée?

+1

Je pense que la façon dont vous le faites est mieux que d'utiliser 'array_map' –

+0

On dirait bien que je fdias –

+0

merci les gars .. .. – fdias

Répondre

1

Votre code est beaucoup plus facile à comprendre. Le array_walk (carte non, puisque la valeur de retour n'a pas d'importance) équivalent serait

array_walk($b, function($el, $k, $a) {$a[$k]['key3'] = $el;}, &$a); 
+0

cela utilise le renvoi par référence au temps d'appel, ce qui est déprécié – user102008

Questions connexes