首页 > 解决方案 > JSON 对象的 PHP 返回值

问题描述

array(85) {
  [0]=>
  object(stdClass)#9 (18) {
    ["offer_id"]=>
    string(8) "12345678"
    ["offer_name"]=>
    string(39) "Offer Name"
    ["offer_desc"]=>
    string(209) "Offer Description"
    ["call_to_action"]=>
    string(57) "Offer CTA"
    ["offer_url"]=>
    string(80) "Offer URL"
    ["offer_url_easy"]=>
    string(106) "Offer URL Easy"
  }
  [1]=>
  object(stdClass)#11 (17) {
    ["offer_id"]=>
    string(8) "87654321"
    ["offer_name"]=>
    string(24) "Offer Name 2"
    ["offer_desc"]=>
    string(107) "Offer Description 2"
    ["call_to_action"]=>
    string(107) "Offer CTA 2"
    ["offer_url"]=>
    string(80) "Offer URL 2"
    ["offer_url_easy"]=>
    string(106) "Offer URL Easy 2"
  }

我正在从一个 API 中提取一个响应,该 API 包含一个内部包含对象的数组。我正在尝试遍历每个对象并获取每个键的值。

比如我要输出:Offer ID: 12345678, Offer ID 2: 87654321

目前我的代码只输出一个 ID(第一个对象 ID)。

$arr = $offer_data->response->offers; //Outputs above array

foreach ($arr as $value) 
{
    return $value->offer_id;
}

输出:12345678

注意:这是在我刚刚回显的函数内部。

尝试了几个小时不同的方式,终于来到这里。感谢您提供的任何帮助。

标签: phpjson

解决方案


那是因为您在第一次迭代时返回。

function test()
{
  $arr = $offer_data->response->offers; //Outputs above array

  $result = [];
  foreach ($arr as $value) {
     $result[] = $value->offer_id;
  }

  return $result;
}

$ids = test();

print_r($ids);

推荐阅读