简体   繁体   English

如何向维数组的每个数组添加元素?

[英]How to add an element to every array of dimensional array?

How to add element to array of multiple dimensional array that will give me output like below code 如何将元素添加到多维数组的数组,这将为我提供如下代码的输出

Source code : see there are dynamic name $tgvalues['Name'] = calneder product financial tip health tips personal event 源代码:看到有动态名称$ tgvalues ['Name'] = Calneder产品财务提示健康提示个人事件

          foreach($json as $templategroup => $tgvalues){
                  $templateval1 = "emailtemplates?expand=".$tgvalues['Name'];
                  $final1 = str_replace(' ','%20',trim($templateval1));
                  $path1 = constant('AMT_BASE_PATH');
                  $url1 = $path1.$final1;
                  $url1;
                  $ch1=curl_init();
                  curl_setopt($ch1,CURLOPT_URL, $url1);
                  curl_setopt($ch1,CURLOPT_RETURNTRANSFER,1);
                  $buffer1 = curl_exec($ch1);
                  curl_close($ch1); 
                  $json1 = json_decode($buffer1, true);
                  $newarray =array('templatename' =>$tgvalues['Name']);
                  print_r(array_merge($json1,$newarray));
                  if (empty($buffer1)){
                      print "There are some problem";
                  } else {
                      $fetchtemplatename1 = Resources_Customers_Customer::fetchtemplategroups();
                      $insert1 = array_diff_assoc($json1, $fetchtemplatename1);

                      //print_r($insert1);
                      $arr_tampgrop =array();
                      foreach($json1 as $key1 => $value1)
                                {


                                    $arr_tampgrop[] =array('Id'=>$value1['Id'],'Name'=>$value1['Name'],'Subject'=>$value1['Subject'],'Body'=>$value1['Body'],'Href'=>$value1['Href']);


                                }
                                //$arrtempname = array($tgvalues['Name']);
                                $arraypush = array_push($arr_tampgrop,$arrtempname["templatename"] = $tgvalues['Name']);
                                print_r($arraypush); 

                              }

                            }

in the source code I am use array_merge ,see line print_r(array_merge($json1,$newarray)); 在源代码中,我使用array_merge,请参见行print_r(array_merge($ json1,$ newarray));

This code, i am getting now 这段代码,我现在得到

      Array
(
      [0] => Array
    (
        [Id] => 1
        [Name] => Merry Christmas                                   
        [Subject] => Merry Christmas
        [Body] => This is the body
        [Href] => 
    )

[1] => Array
    (
        [Id] => 2
        [Name] => Happy 4th of July                                 
        [Subject] => Happy 4th!
        [Body] => This is the body of a July message
        [Href] => 
    )

[templatename] => Calendar                                          
)
 3Array
(
   [0] => Array
    (
        [Id] => 3
        [Name] => New Product 1                                     
        [Subject] => See this new product
        [Body] => This is the body of a one new product
        [Href] =>
    )

[1] => Array
    (
        [Id] => 9
        [Name] => Drip product 1                                    
        [Subject] => Drip new product 1 subject
        [Body] => Drip new product 1 body
        [Href] => 
    )

[2] => Array
    (
        [Id] => 10
        [Name] => Drip product 2                                    
        [Subject] => Drip new product 2 subject
        [Body] => Drip new product 2 body
        [Href] => 
    )

[3] => Array
    (
        [Id] => 11
        [Name] => Drip product 3                                    
        [Subject] => Drip new product 3 subject
        [Body] => Drip new product 3 body
        [Href] => 
    )

[templatename] => Products                                          
)
5Array
(
   [0] => Array
    (
        [Id] => 4
        [Name] => Happy Birthday                                    
        [Subject] => Happy Birthday
        [Body] => This is the body of a birthday card
        [Href] => 
    )

[1] => Array
    (
        [Id] => 5
        [Name] => Happy Anniversary                                 
        [Subject] => Happy Anniversary
        [Body] => This is the body of a anniversary card
        [Href] => 
    )

[2] => Array
    (
        [Id] => 6
        [Name] => After Days 0                                      
        [Subject] => We are glad you joined x0 days ago
        [Body] => This is the body of a join x0 days ago card
        [Href] => 
    )

[3] => Array
    (
        [Id] => 7
        [Name] => After Days 1                                      
        [Subject] => We are glad you joined x1 days ago
        [Body] => This is the body of a join x1 days ago card
        [Href] => 
    )

[4] => Array
    (
        [Id] => 8
        [Name] => After Days 2                                      
        [Subject] => We are glad you joined x2 days ago
        [Body] => This is the body of a join x2 days ago card
        [Href] => 
    )

[templatename] => Personal Events                                   
  )
      6Array
         (
[0] => Array
    (
        [Id] => 12
        [Name] => Drip health tip 1                                 
        [Subject] => Drip health tip 1 subject
        [Body] => Drip health tip 1 body
        [Href] => 
    )

[1] => Array
    (    
        [templatename] => Health Tips
        [Id] => 13
        [Name] => Drip health tip 2                                 
        [Subject] => Drip health tip 2 subject
        [Body] => Drip health tip 2 body
        [Href] => 
    )

[2] => Array
    (
        [templatename] => Health Tips
        [Id] => 14
        [Name] => Drip health tip 3                                 
        [Subject] => Drip health tip 3 subject
        [Body] => Drip health tip 3 body
        [Href] => 
    )


      )
       4Array
        (
      [0] => Array
    (
        [Id] => 15
        [Name] => Drip financial tip 1                              
        [Subject] => Drip financial tip 1 subject
        [Body] => Drip financial tip 1 body
        [Href] => 
    )

[1] => Array
    (
        [Id] => 16
        [Name] => Drip financial tip 2                              
        [Subject] => Drip financial tip 2 subject
        [Body] => Drip financial tip 2 body
        [Href] => 
    )

[2] => Array
    (
        [Id] => 17
        [Name] => Drip financial tip 3                              
        [Subject] => Drip financial tip 3 subject
        [Body] => Drip financial tip 3 body
        [Href] => 
    )

[templatename] => Financial Tips                                    
  ) 

So i Want result like this below . 所以我想要下面这样的结果。 is it possible or not 有没有可能

      Array
(
      [0] => Array
    (   
        [templatename] => Calendar
        [Id] => 1
        [Name] => Merry Christmas                                   
        [Subject] => Merry Christmas
        [Body] => This is the body
        [Href] => 
    )

[1] => Array
    (
        [templatename] => Calendar
        [Id] => 2
        [Name] => Happy 4th of July                                 
        [Subject] => Happy 4th!
        [Body] => This is the body of a July message
        [Href] => 
    )


)
 3Array
(
   [0] => Array
    (
        [templatename] => Products
        [Id] => 3
        [Name] => New Product 1                                     
        [Subject] => See this new product
        [Body] => This is the body of a one new product
        [Href] =>
    )

[1] => Array
    (
        [Id] => 9
        [templatename] => Products
        [Name] => Drip product 1                                    
        [Subject] => Drip new product 1 subject
        [Body] => Drip new product 1 body
        [Href] => 
    )

[2] => Array
    (
        [templatename] => Products
        [Id] => 10
        [Name] => Drip product 2                                    
        [Subject] => Drip new product 2 subject
        [Body] => Drip new product 2 body
        [Href] => 
    )

[3] => Array
    (
        [templatename] => Products
        [Id] => 11
        [Name] => Drip product 3                                    
        [Subject] => Drip new product 3 subject
        [Body] => Drip new product 3 body
        [Href] => 
    )


)
 5Array
(
   [0] => Array
    (
        [templatename] => Personal Events
        [Id] => 4
        [Name] => Happy Birthday                                    
        [Subject] => Happy Birthday
        [Body] => This is the body of a birthday card
        [Href] => 
    )

[1] => Array
     (    
        [templatename] => Personal Events
        [Id] => 5
        [Name] => Happy Anniversary                                 
        [Subject] => Happy Anniversary
        [Body] => This is the body of a anniversary card
        [Href] => 
    )

[2] => Array
    (
        [templatename] => Personal Events
        [Id] => 6
        [Name] => After Days 0                                      
        [Subject] => We are glad you joined x0 days ago
        [Body] => This is the body of a join x0 days ago card
        [Href] => 
    )

[3] => Array
    (
        [templatename] => Personal Events 
        [Id] => 7
        [Name] => After Days 1                                      
        [Subject] => We are glad you joined x1 days ago
        [Body] => This is the body of a join x1 days ago card
        [Href] => 
    )

[4] => Array
    (
        [templatename] => Personal Events
        [Id] => 8
        [Name] => After Days 2                                      
        [Subject] => We are glad you joined x2 days ago
        [Body] => This is the body of a join x2 days ago card
        [Href] => 
    )


  )
      6Array
         (
[0] => Array
    (

        [templatename] => Health Tips
        [Id] => 12
        [Name] => Drip health tip 1                                 
        [Subject] => Drip health tip 1 subject
        [Body] => Drip health tip 1 body
        [Href] => 
    )

[1] => Array
    (
        [templatename] => Health Tips
        [Id] => 13
        [Name] => Drip health tip 2                                 
        [Subject] => Drip health tip 2 subject
        [Body] => Drip health tip 2 body
        [Href] => 
    )

[2] => Array
    (
        [templatename] => Health Tips
        [Id] => 14
        [Name] => Drip health tip 3                                 
        [Subject] => Drip health tip 3 subject
        [Body] => Drip health tip 3 body
        [Href] => 
    )


      )
     4Array
      (
   [0] => Array
    (
        [templatename] => Financial Tips
        [Id] => 15
        [Name] => Drip financial tip 1                              
        [Subject] => Drip financial tip 1 subject
        [Body] => Drip financial tip 1 body
        [Href] => 
    )

[1] => Array
    (
        [templatename] => Financial Tips
        [Id] => 16
        [Name] => Drip financial tip 2                              
        [Subject] => Drip financial tip 2 subject
        [Body] => Drip financial tip 2 body
        [Href] => 
    )

[2] => Array
    (
        [templatename] => Financial Tips
        [Id] => 17
        [Name] => Drip financial tip 3                              
        [Subject] => Drip financial tip 3 subject
        [Body] => Drip financial tip 3 body
        [Href] => 
    )


  ) 

From what I can see you'll want to change the line 据我所知,您将需要更改行

$arr_tampgrop[] =array('Id'=>$value1['Id'],'Name'=>$value1['Name'],'Subject'=>$value1['Subject'],'Body'=>$value1['Body'],'Href'=>$value1['Href']);

to be 成为

$arr_tampgrop[] =array('templatename'=>$tgvalues['Name'],'Id'=>$value1['Id'],'Name'=>$value1['Name'],'Subject'=>$value1['Subject'],'Body'=>$value1['Body'],'Href'=>$value1['Href']);

and remove any line that adds templatename where you dont want it to be, such as 并删除任何在不希望添加模板名称的地方添加行,例如

$newarray =array('templatename' =>$tgvalues['Name']);
print_r(array_merge($json1,$newarray));

&

$arraypush = array_push($arr_tampgrop,$arrtempname["templatename"] = $tgvalues['Name']);

The code was adding on the template name at the end of each array instead of as a part of the array. 代码是在每个数组的末尾添加模板名称,而不是作为数组的一部分。 It also prints the array more than necessary so they can be commented out so that the output is easier to read for you. 它还会打印多余的数组,以便将其注释掉,以便您更轻松地阅读输出。

You can use array_map to accomplish this. 您可以使用array_map完成此操作。 It allows you to apply a function to every element of any array. 它允许您将函数应用于任何数组的每个元素。 In your case you could add an element to each sub array, by applying array_map to the parent array. 在您的情况下,可以通过将array_map应用于父数组,将元素添加到每个子数组。

quick example (may need to tweak to your needs) 快速示例(可能需要调整您的需求)

$newArray = array_map(
     function($subArr) use ($tgvalues) { return $subArr['templatename'] = $tgvalues['Name']; },
     $json1
);

The callback function only has access to the keys and values of the array it is working on. 回调函数只能访问其正在处理的数组的键和值。 To use a defined variable in the callback use use ($var) 要在回调中使用已定义的变量,请use ($var)

On taking the value of templatename in array like array that I want to 在我想要的数组中获取模板名称的值

merge with element ie Calendar,health Tips , Products etc. 与元素合并,即日历,健康提示,产品等。

Then in foreach taking all values of child array and merge both array 然后在foreach中获取子数组的所有值并合并两个数组

$arr_tampgrop[] = array_merge($arrgroup,$value1); 

in print_r(arr_tampgrop); result is obtained.


$arrgroup = array("templatename" => $tgvalues['Name']);
                    $arr_tampgrop =array();
                       foreach($json1 as $key1 => $value1)
                                {
                                $arr_tampgrop[] = array_merge($arrgroup,$value1);
                                }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM