2013-10-02 2 views
0

Я беру информацию из канала JSON и создаю канал JSON, который я могу использовать более легко для большего количества устройств. Проблема, с которой я сталкиваюсь, заключается в создании нового массива в PHP для фида JSON, мне нужно использовать цикл foreach. Вот мой код для цикла Еогеаспа:PHP Merge Array во время 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 и создает новый? Это дает мне следующее:

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] [ 'Id'] 'внутри Еогеасп. Помните «foreach ($ json_decode as $ r)» !! Используйте '$ r ['id']' внутри. создавать новые переменные для работы с '$ json_decode [$ special_number]' –

ответ

0

Это следует сделать это:

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

Функция объединения может занять больше массивов параметров, которые будут объединены, в вашем случае, если вы не слил содержимое fullarray в новый массив, вместо этого вы перезаписать его ,

Вам также может понадобиться объявить полный массив перед тем Еогеасп