【发布时间】:2019-09-11 03:57:12
【问题描述】:
我几乎是在自学编写代码,并在创建一个抓取应用程序方面玩了一点儿游戏。我有一个我在 json api 中使用的数组,但我需要展平结构,以便我可以轻松地在其他地方使用它。
我真的很难弄清楚我需要在这里做什么。我已经阅读了大量其他类似请求的问题,但数组格式与我的格式不匹配,所以我实际上不知道如何解决这个问题。
这是当前的数组结构
{
"result": [
{
"Boot buddy": {
"id": "2",
"groupno": "1",
"urlsource": "https://www.amazon.co.uk/Boot-Buddy-fastest-simplest-footwear/dp/B014UPAHO4?pd_rd_wg=lVVK6&pd_rd_r=bf1ba871-fb59-4c66-a146-e94dde7c8e6d&pd_rd_w=gWC2F&ref_=pd_gw_ri&pf_rd_r=W68MX1TXFDDJ8Q8Z08CP&pf_rd_p=cecd4520-32f6-5499-ae19-cd4e83816acd",
"name": "Boot buddy",
"date": "2019-04-14 16:00:29.595,2019-04-14 21:50:31.362,2019-04-14 21:54:11.184",
"price": "£14.99,£14.99,£14.99"
},
"Amazon echo": {
"id": "1",
"groupno": "1",
"urlsource": "https://www.amazon.co.uk/dp/B07CH6JKW3/ref=gw_uk_desk_h1_aucc_cp_mp?pf_rd_p=e4e5a2e6-ddbd-473a-a5fb-e8cc09a11f88&pf_rd_r=1MN25BRXY8YDQ4TBK4X6",
"name": "Amazon echo",
"date": "2019-04-14 16:00:29.595,2019-04-14 21:50:31.362,2019-04-14 21:54:11.184",
"price": "£14.99,£14.99,£14.99"
}
}
]
}
我想实现这个
{
"result": [
{
"id": "2",
"groupno": "1",
"urlsource": "https://www.amazon.co.uk/Boot-Buddy-fastest-simplest-footwear/dp/B014UPAHO4?pd_rd_wg=lVVK6&pd_rd_r=bf1ba871-fb59-4c66-a146-e94dde7c8e6d&pd_rd_w=gWC2F&ref_=pd_gw_ri&pf_rd_r=W68MX1TXFDDJ8Q8Z08CP&pf_rd_p=cecd4520-32f6-5499-ae19-cd4e83816acd",
"name": "Boot buddy",
"date": "2019-04-14 16:00:29.595,2019-04-14 21:50:31.362,2019-04-14 21:54:11.184",
"price": "£14.99,£14.99,£14.99"
},
{
"id": "1",
"groupno": "1",
"urlsource": "https://www.amazon.co.uk/dp/B07CH6JKW3/ref=gw_uk_desk_h1_aucc_cp_mp?pf_rd_p=e4e5a2e6-ddbd-473a-a5fb-e8cc09a11f88&pf_rd_r=1MN25BRXY8YDQ4TBK4X6",
"name": "Amazon echo",
"date": "2019-04-14 16:00:29.595,2019-04-14 21:50:31.362,2019-04-14 21:54:11.184",
"price": "£14.99,£14.99,£14.99"
}
]
}
这是我用来生成数组的代码,然后将其转换为 json 以在 api 中使用。我正在迭代先前对数据库的调用以将重复记录合并在一起,但保留唯一的日期和价格数据。所以也许有办法改变这段代码以获得我想要的输出?
$records=array();
$records[result]=array();
foreach ($products_arr[records] as $key => $value) {
$hash = $value['name'];
if(isset($result[$hash])){
$result[$hash]['date'] .= ",{$value['date']}";
$result[$hash]['price'] .= ",{$value['price']}";
}else{
$result[$hash] = $value;
}
}
array_push($records[result], $result);
任何帮助表示赞赏!
【问题讨论】:
-
$yourArray['result'] = array_values($yourArray['result'])? -
创建错误@Dharman 抱歉
-
什么错误?你尝试了什么?我看不到你的屏幕,记得吗?
-
我正在使用邮递员来使用 api,并且由于某种原因它实际上与 http 响应代码有关,但它只发生在我添加上面的行时。这是错误...
解析错误:语法错误,C:\xampp\htdocs\api\product\read-merged 中出现意外的“http_response_code”(T_STRING)。 php 上线 79
-
你在上一行之后忘记了
;...
标签: php arrays json nested flatten