Ниже приведена структура JSON, которую я добавляю в свой скрипт PHP как запрос $ _POST. Ключи для названий кампаний и названий групп генерируются динамически, поэтому мне нужно извлечь эти ключи, чтобы затем я мог сгруппировать каждую кампанию с ее именем группы и копией рекламы в отдельные массивы.
Я видел несколько постов, которые очень похожи, но ни одно из этих решений пока не работает. Я чувствую, что чрезмерно усложняю это.
{
"First Campaign Name": {
"First Group Name": {
"textads": [
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"],
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"]
]
},
"Second Group Name": {
"textads": [
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"],
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"]
]
}
},
"Second Campaign Name": {
"First Group Name": {
"textads": [
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"],
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"]
]
},
"Second Group Name": {
"textads": [
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"],
[
"{Headline text}",
"First line text",
"Second line text",
"Display URL"]
]
}
}
}
Я пробовал несколько циклов foreach и вложенных циклов foreach, пытаясь получить доступ к ключам и значениям без удачи. Мои последние попытки:
foreach($jsonString as $campaign) {
foreach($campaign as $k => $v){
$postData .= "Key: " . $k . "\r\n";
$postData .= "Val: " . $v . "\r\n";
}
}
Где $ postData уже определен и затем сохранен в файл для вывода.
Я также попытался сделать следующее:
foreach ($_POST as $key => $value) {
foreach( $value as $item){
foreach( $item as $k => $v){
$postData .= "Key: " . $k . "\r\n";
$postData .= "Val: " . $v . "\r\n";
}
}
}
Вам нужно будет преобразовать JSON в массив php, прежде чем вы сможете использовать его с foreach.
$ phparray = json_decode ($ jsonString);
Других решений пока нет …