我从JSON提要中获取信息,并创建一个JSON提要,我可以在更多设备上更轻松地使用它。我遇到的问题是在PHP中为JSON提要创建新数组时,我需要使用foreach
循环。这是我的foreach循环代码:
$obj = json_decode($json);
$json_decode = objectToArray($obj);
$special_number = '0';
$special_number2 = '0';
foreach($json_decode AS $r) {
$info = explode('.', $json_decode[$special_number]['Id']);
$newarray = array( $special_number => array( 'client' => $info['4'], 'placementID' => $info['2'], 'creativeID' => $info['3'], 'dimensions' => $info['3'], 'impressions' => $json_decode[$special_number]['Impressions'], 'bxd' => $json_decode[$special_number]['BXD'], 'viewable_impressions' => $json_decode[$special_number]['ViewableImpressions'], 'exposure' => $json_decode[$special_number]['Exposure'], 'viewability_rate' => $json_decode[$special_number]['ViewableRate'], 'clicks' => $json_decode[$special_number]['AdClicks'], 'mouse_overs' => $json_decode[$special_number]['AdMouseOvers'] ));
$fullarray = array_merge($newarray);
$special_number++;
}
我基本上使用他们的数组,重新排序信息并仅获取我需要的数据,并使用它创建一个名为$fullarray
的新数组。我每次生成的每个子数组都是生成的,是不是因为我运行foreach
它会破坏旧的$fullarray
,并创建一个新的?{1}}?它给了我以下内容:
Array
(
[0] => Array
(
[client] =>
[placementID] => 3
[creativeID] => 4
[dimensions] => 4
[impressions] => 1
[bxd] => 0
[viewable_impressions] => 0
[exposure] => 0
[viewability_rate] => 0
[clicks] => 1
[mouse_overs] => 1
)
)
我已经搜索了这个,但我找不到它,其他线程是关于组合不同的键和值,我必须创建子数组以保持键相同,并具有不同的值(这是我想要的,肯定的。)
任何帮助将不胜感激! :)
答案 0 :(得分:0)
这应该这样做:
$fullarray = array()
foreach(...)
{
...
$fullarray = array_merge($fullarray,$newarray);
}
合并函数可以合并更多的数组参数,在这种情况下,你没有将fullarray的内容合并到新数组,而是覆盖它。
您可能还需要在foreach
之前声明完整数组