php - 如何获得 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
}
]
谢谢 :)
解决方案
老实说,我看不出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 以创建用户友好的输出,但这只是向您展示了一般概念。)
推荐阅读
- sql - PostgreSQL 查询包含特定键值的 json 对象中的行
- ios - 如何在提交到 App Store 之前检测私有 api 的使用情况以避免被拒绝
- apache-flink - 详解:Flink 如何实现exactly-once 机制?
- reactjs - 在到达路由器中取消导航
- angular - 如何在 Angular 8 中的选择标签上设置占位符?
- sql - 与以下 sql 查询相关的 sequelize 查询是什么?
- python - 如何检查最近是否使用python打开了应用程序?
- c# - 从 asp.net core web api 下载大文件到 winforms 抛出 json 长度值很大并且不受支持
- c++ - 访问类成员向量的最后一项的正确方法
- c# - 如何使用 C# 重命名 .rar .7z、.tar、.zip 中的文件和文件夹