Как добавить элемент в массив многомерного массива, который даст мне вывод, как показано ниже
Исходный код :
видеть, что есть динамическое имя $ 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);
}
}
в исходном коде я использую array_merge, см. строку print_r (array_merge ($ json1, $ newarray));
Этот код я получаю сейчас
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
)
Итак, я хочу результат, как это ниже. это возможно или нет
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] =>
))
Из того, что я вижу, вы захотите изменить линию
$arr_tampgrop[] =array('Id'=>$value1['Id'],'Name'=>$value1['Name'],'Subject'=>$value1['Subject'],'Body'=>$value1['Body'],'Href'=>$value1['Href']);
быть
$arr_tampgrop[] =array('templatename'=>$tgvalues['Name'],'Id'=>$value1['Id'],'Name'=>$value1['Name'],'Subject'=>$value1['Subject'],'Body'=>$value1['Body'],'Href'=>$value1['Href']);
и удалите любую строку, которая добавляет имя шаблона, где вы не хотите, например,
$newarray =array('templatename' =>$tgvalues['Name']);
print_r(array_merge($json1,$newarray));
&
$arraypush = array_push($arr_tampgrop,$arrtempname["templatename"] = $tgvalues['Name']);
Код добавлялся к имени шаблона в конце каждого массива, а не как часть массива. Он также печатает массив больше, чем необходимо, чтобы его можно было закомментировать, чтобы его было легче прочитать.
Ты можешь использовать array_map чтобы сделать это. Это позволяет вам применять функцию к каждому элементу любого массива. В вашем случае вы можете добавить элемент в каждый вложенный массив, применив array_map к родительскому массиву.
быстрый пример (может понадобиться настроить под ваши нужды)
$newArray = array_map(
function($subArr) use ($tgvalues) { return $subArr['templatename'] = $tgvalues['Name']; },
$json1
);
Функция обратного вызова имеет доступ только к ключам и значениям массива, над которым она работает. Чтобы использовать определенную переменную в обратном вызове, используйте use ($var)
Принимая значение templatename в массиве, как массив, который я хочу
объединить с элементом, т. е. календарь, советы по здоровью, продукты и т. д.
Затем в 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);
}