【问题标题】:Difficulty using associative array outside of for loop在 for 循环之外使用关联数组的困难
【发布时间】:2016-04-08 12:15:22
【问题描述】:

简而言之,我在 PHP 的循环之外打印 assoc 数组时遇到问题。我实际上是在循环一系列活动 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 的二维数组吗?

任何 cmets 将不胜感激!

谢谢,

山姆

【问题讨论】:

  • 你为什么拒绝我的编辑

标签: php arrays json curl


【解决方案1】:

您需要追加到 $test 数组而不是覆盖其中的元素,例如

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

[] 运算符每次都会向 $test 数组添加一个新元素,这应该会为您提供所需的结构。

【讨论】:

  • 感谢您帮助我理解这个 iainn,我现在可以在循环之外使用数组了!
猜你喜欢
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-25
  • 1970-01-01
  • 2016-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多