【问题标题】:how to add new element in all subarray in php [duplicate]如何在php的所有子数组中添加新元素[重复]
【发布时间】:2015-10-05 07:47:39
【问题描述】:

我想在每个子数组的末尾添加新元素

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

这里我想在每个子数组的“cate”之后添加“test”=>“test”。 我已经尝试使用地图但它不起作用。我想要这样的结果:

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

这怎么可能。

【问题讨论】:

  • 你应该已经阅读了 php 手册,你可以通过使用 foreach 和 array_map 函数迭代主数组元素来做到这一点。

标签: php arrays


【解决方案1】:

我不知道你到底尝试了什么,但这个数组映射会起作用:

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

【讨论】:

    【解决方案2】:

    只需循环数组并将值添加到其中的每个数组。

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

    【讨论】:

      【解决方案3】:

      你可以试试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);
      

      【讨论】:

      • 嗨,但我希望它与变量中的新元素值一起使用,例如:$x['test'] = $message;而不是 $x['test'] = 'test';
      猜你喜欢
      • 2020-05-09
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 2018-06-28
      • 2012-06-11
      • 2013-05-28
      • 2021-03-10
      相关资源
      最近更新 更多