php - PHP - JSON 到数组,迭代并打印到字符串
问题描述
我在 HTTP 请求中收到以下 JSON 对象:
{
"name": "myjsonstring",
"statisticalvalues": [
{
"key_0":"677876"
},
{
"key_0":"0"
},
],
"commoditycodes": [
{
"key_0":"90001000"
},
{
"key_0":"80001000"
},
]
}
我想得到上面的值statisticalvalues & commoditycodes
,比如:
JSON Information:
677876 90001000
0 80001000
我最初的想法是将其添加到数组中:
$returnArray = [];
//Input
foreach ($request->input() as $key => $value) {
if ($key === 'commoditycodes') {
$returnArray['commoditycodes'][] = $value;
}
if ($key === 'statisticalvalues') {
$returnArray['statisticalvalues'][] = $value;
}
}
然后我想像上面一样输出它,但我不确定如何迭代它:statisticalvalues | commoditycodes
//Output:
foreach ($returnArray as $value) {
print_r($value);
die();
}
我在正确的轨道上吗?谁能帮我生成正确的输出格式?
解决方案
用于json_decode()
首先解码 JSON。然后循环遍历它statisticalvalues
,在数组中找到commoditycodes
具有相同数组索引的对应commoditycodes
。请记住,实际值位于名为 的属性下key_0
。
<?php
$json = '{"name":"myjsonstring","statisticalvalues":[{"key_0":"677876"},{"key_0":"0"}],"commoditycodes":[{"key_0":"90001000"},{"key_0":"80001000"}]}';
$obj = json_decode($json,false);
foreach ($obj->statisticalvalues as $key => $value) {
echo $value->key_0 . "\t\t" . $obj->commoditycodes[$key]->key_0 . "\n";
}
?>
在您的情况下,可能是:
<?php
$obj = $request->input();
foreach ($obj["statisticalvalues"] as $key => $value) {
echo $value["key_0"] . "\t\t" . $obj["commoditycodes"][$key]["key_0"] . "\n";
}
?>
推荐阅读
- linux - 重定向中的算术表达式
- laravel - 当测试配置为使用 sqlite 时,测试用例创建重复条目并删除 mysql 数据库条目
- javascript - undefined 不是一个对象(评估 'navigation.navigate') React Native
- python - 为什么我的机器人循环给了我多个答案?
- c++ - 在 C++ 中找到 5 个不同元素的最小和最大元素
- c# - 参数传递一个 TCPClient 对象
- javascript - 我有一个对象数组。每个对象都包含最大和最小键值对。如何找到包含预定义值的对象?
- flutter - Flutter:如何滚动容器而不是其内容?
- java - PropertyDescriptor 类在 java 中的工作原理
- php - 如何从同一张表中获取所有计数的总和?