0

JSON フィードから情報を取得し、より多くのデバイスでより簡単に使用できる JSON フィードを作成しています。私が抱えている問題は、JSON フィード用に PHP で新しい配列を作成するときに、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、新しいものを作成している a を実行しているためですか? それは私に次のことを与えています:

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
    )

)

これを検索しましたが、見つかりません。他のスレッドは、異なるキーと値を組み合わせることに関するものです。キーを同じに保ち、異なる値を持つようにサブ配列を作成する必要があります(これは私が望むものです、はい。)

どんな助けでも大歓迎です!:)

4

1 に答える 1

0

これはそれを行う必要があります:

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

マージ関数は、マージするより多くの配列パラメーターを取ることができます。あなたの場合、 fullarray の内容を新しい配列にマージせず、代わりに上書きします。

foreach の前に完全な配列を宣言する必要がある場合もあります

于 2013-10-02T04:03:41.270 に答える