JSON对象的PHP返回值

时间:2018-12-21 07:30:20

标签: php json

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包含一个内部包含对象的数组。我试图遍历每个对象并获取每个键的值。

例如,我要输出: 优惠编号:12345678, 优惠ID 2:87654321

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

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

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

输出:12345678

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

经过数小时的尝试,终于来到了这里。感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:3)

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

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);

答案 1 :(得分:1)

从PHP 7开始(当它开始支持对象作为输入时),您可以使用array_column一次性提取所有值...

return array_column($offer_data->response->offers, "offer_id");

答案 2 :(得分:0)

请尝试这个。

$arr[] = $offer_data->response->offers;