背景
这是一个WordPress插件开发问题。有一个API可以返回数组中的动态url地址:
array(4) {
[0]=>string(22) "https://t.somedomain.com"
[1]=>string(20) "https://somedomain.com"
[2]=>string(23) "http://192.168.2.209/km"
[3]=>string(23) "http://somedomain2/km"
....
}
我已经能够检索上面的数组并将其保存到PHP $urls
中。
上面的每个url地址都可以在GET
操作后返回JSON响应,比如如果我GET
一个url,它会像下面这样响应:
{
"name":"HR",
"floor":3,
"staff": [
{ "name":"John", "info":[ "Java", "Google", "Market" ] },
{ "name":"Alex", "info":[ "PHP", "Swift", "Market" ] },
{ "name":"Duke", "info":[ "HTML", "Market" ] }
]
}
进球
从所有url中获取所有json内容并合并为一个,并解码这些JSON,以便php可以操作这些数据。
迄今取得的进展
因为现在所有的url都存储在变量$urls
中,所以我可以使用foreach()
来获取所有$urls
中的JSON内容。
foreach ($urls as $url) {
$response = wp_remote_retrieve_body(wp_remote_get($url));
$obj = json_decode($response);
// var_dump($obj);
}
这将返回所有URL的结果,但逐个分开。
因为url会被改变,并且可能有大量的url,所以使用以下命令并不明智:
array_merge($array1, $array2);
问题
有没有可能将每个$response
(json)合并为一个?
或者有没有可能把所有解码的php对象合并成一个?
欢迎任何建议。感谢您对此的关注。
1条答案
按热度按时间oaxa6hgo1#
感谢@Barmar,我把这个问题看得太复杂了,经过反复尝试,我已经找到了解决方案:
上面的代码正在工作。不太熟悉array_merge(),从现在开始这应该很简单。