2016-04-08 19 views
1

簡単に言えば、私はPHPのループの外側でassoc配列を出力する際に​​問題があります。私は本質的に、curlリクエストのURLに代入されるキャンペーンIDの配列をループしています(これはサーバーからJSONの配列を取得するためです)。私はこのJSONから "base_bid"を検索するために正規表現を使用しています。私は外の完全連想配列にアクセスできないことをforループの外部で連想配列を使用するのが難しい

Array ([0] => Array ([id] => 12311 [base_bid] => 0.8) [1] => Array ([id] => 12322 [base_bid] => 0.4)) 

問題は:理想的には、Iを出力する。このような[「ID」]と[「base_bid」]キーを使用して二次元の連想配列を必要としますループの値が、私はこの出力を得るという意味重なっとして:ここで

Array ([id] => 11710821 [base_bid] => 3.8416) 

は私のループ設計である:

for ($i=0; $i < count($campaigns); $i++) { 
    $ch = curl_init('https://api.appnexus.com/campaign?id='.$campaigns[$i].''); 
    $options = array(CURLOPT_CUSTOMREQUEST => 'GET', 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_SSL_VERIFYPEER => false, 
    CURLOPT_HTTPHEADER => array(
     'Content-Type: application/json', 
     'Authorization:'.$token[1].'')); 
    curl_setopt_array($ch, $options); 
    $base = curl_exec($ch); 
    curl_close($ch); 

    preg_match('/"base_bid":([0-9\.]+)/', $base ,$bid); 
    $test['id'] = $campaigns[$i]; 
    $test['base_bid'] = $bid[1]; 
}; 

echo print_r($test); 

誰もが、私はIDの2次元配列を取得することができるだろうか知っていますし、 base_bids in私のループの外側全体?

コメントをいただければ幸いです!

おかげで、

サム

+0

私の編集を拒否する理由 –

答えて

2

あなたは、その中の要素を上書きするのではなく、$テスト配列に、例えばを追加する必要があります

$test[] = array(
    'id' => $campaigns[$i], 
    'base_bid' => $bid[1], 
); 

[]演算子は毎回$ test配列に新しい要素を追加します。これにより、必要な構造体が得られます。

+0

このiainnの理解を助けてくれてありがとう、今私のループの外で配列を使うことができます! –