2015-10-05 34 views
-4

添加新的元件欲在各子陣列的如何在所有子陣列在PHP

$a1 = array(
      array('name'=>"Dog",'cate'=>"Cat"), 
      array('name'=>"Puppy",'cate'=>"Kitten"), 
      array('name'=>"happy",'cate'=>"lucky") 
     ); 

在這裏,我想「美食」後添加「測試」 =>「測試」的末尾添加新元素在每個子陣列中。 我已經嘗試過使用地圖,但它不工作。我想要這樣的結果:

$a1 = array(
      array('name'=>"Dog",'cate'=>"Cat",'test'=>"test"), 
      array('name'=>"Puppy",'cate'=>"Kitten",'test'=>"test"), 
      array('name'=>"happy",'cate'=>"lucky",'test'=>"test") 
     ); 

怎麼可能。

+1

您應該通過PHP手冊已經走了,你可以通過主要使用數組元素的foreach以及array_map功能迭代做到這一點。 –

回答

0

你可以試試array_map -

$a1 = array(
     array('name'=>"Dog",'cate'=>"Cat"), 
     array('name'=>"Puppy",'cate'=>"Kitten"), 
     array('name'=>"happy",'cate'=>"lucky") 
    ); 

$new = array_map(function($x) { 
    $x['test'] = 'test'; 
    return $x; 
}, $a1); 

更新

$new = array_map(function($x) use($message) { 
    $x['test'] = $message; 
    return $x; 
}, $a1); 
+0

嗨,但我希望它使用從變量中的新元素值喜歡: $ x ['test'] = $ message; is $ x ['test'] ='test'; –

+0

檢查更新。 –

0

我不知道你究竟試了一下,但是這陣圖將工作:

$a1 = array_map(function (array $a) { return $a + array('test' => 'test'); }, $a1); 
0

只需循環數組並將值添加到其中的每個數組。

foreach($a1 as $k => $v) { 
    $a1[$k][$newkey] = $newvalue; 
}