I am using Laravel .if i dd() $arrBody I get following result dd($arrBody);
array:7[▼
"first_name" => "john"
"last_name" => "doe"
"email_address" => "[email protected]",
"age"=> 25,
"date"=>"2021-07-9",
"country"=>"USA",
"code"=>"3045"
]
Now I want to get email,firstname and last name from $arryBody and assigned them to email,first_name and last_name key. But rest of keys like age, country,state and date i want them to go in custom_fields array but its like a hardcoded here. since I am displaying age, date,country one by one. My array may have more key/values so I want to make custom_fields array dynamic. I want field_name inside inside custom_fields to have a same name that comes after email,first_name and last_name of $arrBody array instead of manually writing field_name and want to assign that keys value to "value"
$data = [
"subscribers"=>[
[
"email"=> $arrBody['email'],
"first_name"=> $arrBody['first_name'],
"last_name"=> $arrBody['last_name'],
"subscribed"=> true,
"custom_fields"=>[
[
"field_name"=> "age",
"value_type"=> "text",
"value"=> array_key_exists('age',$arrBody) ? $arrBody['age']:''
],
[
"field_name"=> "country",
"value_type"=> "text",
"value"=> array_key_exists('country',$arrBody) ? $arrBody['country']:''
],
[
"field_name"=> "date",
"value_type"=> "text",
"value"=> array_key_exists('date',$arrBody) ? $arrBody['date']:''
],
//so on...
]
]
]
];
In Laravel I can use
$main = ['email', 'first_name', 'last_name'];
$subscriber = Arr::only($arrBody, $main);
$custom = Arr::exclude($arrBody, $main);
Now I want this $custom array inside "custom_fields"=>[] dynamically until the length of $custom array instead of checking if it has age, country etc or not. something like this if possible
custom_fields" => [
[
"field_name" => array_keys($custom)
"value_type" => "text",
"value" => array_values($custom)
],
//go until the end of $custom array
];