简而言之,我在PHP中在循环外打印一个关联数组时遇到问题。我基本上是循环遍历一系列广告系列ID,这些ID被替换为curl请求的URL(这是从服务器检索JSON数组)。然后我使用正则表达式从这个JSON中检索“base_bid”。理想情况下,我需要输出一个带有['id']和['base_bid']键的二维关联数组,如下所示:
Array ( [0] => Array ( [id] => 12311 [base_bid] => 0.8 ) [1] => Array ( [id] => 12322 [base_bid] => 0.4 ) )
问题是我无法访问循环外的完整assoc数组,因为值重叠意味着我得到了这个输出:
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和base_bids的二维数组吗?
非常感谢任何评论!
谢谢,
萨姆
答案 0 :(得分:2)
您需要附加到$ test数组,而不是覆盖其中的元素,例如
$test[] = array(
'id' => $campaigns[$i],
'base_bid' => $bid[1],
);
[]运算符每次都会向$ test数组添加一个新元素,它应该为您提供所需的结构。