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
注意:这是在我刚刚回显的函数中。
经过数小时的尝试,终于来到了这里。感谢您提供的任何帮助。
答案 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;