首页 > 解决方案 > 如何获得 JSON 输出的第二个 json 块?

问题描述

这种方法

$bestandspflegeArray = json_decode($urlContents, true);

将 json 转换为数组。

用这个方法

$hersteller = array_column($bestandspflegeArray, 'hersteller');

我得到“hersteller”的所有值。

那么我怎么能说如果 html 输入与 hersteller 的值匹配,也打印他的所有其他值。像 id、hersteller 和 baujahr……等等?例如,在下面的“bmw”的 json 代码中。

[
{
"id": 2,
"hersteller": "bmw",
"modell": "{modell}",
"baujahr": "2015",
"artikelname": "nockenwelle",
"ekpreis": 149,
"verkpreis": 349,
"mengeverfuegbar": 8
},
{
"id": 3,
"hersteller": "audi",
"modell": "{modell}",
"baujahr": "2018",
"artikelname": "kotfluegel",
"ekpreis": 89,
"verkpreis": 249,
"mengeverfuegbar": 4
},
{
"id": 4,
"hersteller": "mercedes",
"modell": "{modell}",
"baujahr": "2019",
"artikelname": "getriebe",
"ekpreis": 299,
"verkpreis": 859,
"mengeverfuegbar": 3
}
]

谢谢 :)

标签: phpjsonapi

解决方案


老实说,我看不出array_column这里会给你带来什么价值。

如果您想查找“hersteller”值与您的输入匹配的所有项目,然后从该项目打印所有其他值,最简单的方法就是使用循环。(可能有人会向您展示一种“更好”的方式,但这很简单,可以理解并且会起作用):

$inputValue = "bmw"; //dummy input value, for demo
$bestandspflegeArray = json_decode($urlContents, true);

foreach ($bestandspflegeArray as $item)
{
  if ($item["hersteller"] == $inputValue) { print_r($item); }
}

(显然,您可以用更复杂的东西替换 print_r 以创建用户友好的输出,但这只是向您展示了一般概念。)


推荐阅读