【问题标题】:Foreach loop with mixed stdClass objects and arrays具有混合 stdClass 对象和数组的 Foreach 循环
【发布时间】:2012-01-03 02:04:57
【问题描述】:

这里我有一个使用 Soap 的网站的输出

标准类对象 ( [页面] => 0 [项目] => 3 [总计] => 3 [saleItems] => 标准类对象 ( [saleItem] => 数组 ( [0] => 标准类对象 ( [reviewState] => 打开 [跟踪日期] => 2011-11-03T01:06:43.547+01:00 [修改日期] => 2011-11-03T01:06:43.677+01:00 [点击日期] => 2011-10-30T22:57:57.383+01:00 [adspace] => 标准类对象 ( [_] => Beslist.nl [id] => 1437603 ) [admedium] => stdClass 对象 ( [_] => 001. 节目标志 [id] => 535098 ) [程序] => 标准类对象 ( [_] => Zavvi NL [id] => 8991 ) [clickId] => 1565847253976339456 [clickInId] => 0 [金额] => 40.45 [佣金] => 2.83 [货币] => 欧元 [gpps] => 标准类对象 ( [gpp] => 数组 ( [0] => 标准类对象 ( [_] => 商店链接 [id] => zpar0 ) ) ) [trackingCategory] ​​=> 标准类对象 ( [_] => 默认 [id] => 45181 ) [id] => 46a4f84a-ba9a-45b3-af86-da5f3ec29648 ) ) ) )

我想从程序、佣金和 gpp->_ 中获取数据(带有 foreach 循环)。我可以像这样从程序和佣金中获取数据:

foreach ($sales->saleItems->saleItem as $sale) {
  $programma    = $sale->program->_;
  $commissie    = $sale->commission;
}

像魅力一样工作。但是我无法从gpp->_ 获取数据(希望有s​​hoplink 作为结果)。我目前有:

foreach ($sales->saleItems->saleItem->gpps->gpp as $tracking) {
  echo $tracking->_;
}

我收到错误“尝试获取非对象的属性”。我已经尝试了很多变化,但无法让它发挥作用。觉得我真的很亲近。谁有解决办法?

【问题讨论】:

    标签: php object foreach stdclass


    【解决方案1】:

    这应该可以工作

       foreach ($sales->saleItems->saleItem as $sale) {
            foreach($sale->gpps->gpp as $tracking) {
                echo $tracking->_;
        }
    

    由于saleItem 是一个数组,因此您将无法在其上使用链接。

    【讨论】:

      猜你喜欢
      • 2010-10-31
      • 2012-04-05
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 2014-09-19
      • 2015-10-24
      • 2012-11-02
      • 1970-01-01
      相关资源
      最近更新 更多