2013-10-02 80 views
0

我正在從JSON提要中獲取信息,並創建一個JSON提要,以便在更多設備上更輕鬆地使用JSON提要。我遇到的問題是在PHP中爲JSON提要創建新數組時,我需要使用foreach循環。這是我對foreach循環代碼:ForEach PHP合併數組

$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,並創建了一個新的?這是給我的情況如下:

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

之前宣佈全陣列,不要使用'$ json_decode [$ special_number] [ '身份證']'你的foreach內。記住「foreach($ json_decode爲$ r)」!!在裏面使用'$ r ['id']'。創建新的變量來處理'$ json_decode [$ special_number]' –

回答

0

這應做到:

$fullarray = array() 
foreach(...) 
{ 
    ... 
    $fullarray = array_merge($fullarray,$newarray); 
} 

合併功能可以採取更多的陣列參數進行合併,在你的情況你沒有合併fullarray的內容到新陣列,而不是你覆蓋它。

您可能還需要的foreach