从JSON数组中提取一个对象/组,并使用PHP将其保存到新文件中。我挂断了代码的数组部分
我尝试循环使用以下json结构并从中提取产品:从JSON数组中提取一个对象/组,并使用PHP将其保存到新文件中。我挂断了代码的数组部分,php,json,Php,Json,我尝试循环使用以下json结构并从中提取产品: []JSON ->{0} -->[]username -->[]avatar -->[]rep -->[]products -->[]groups -->[]feedbacks -->[]online -->[]staff 我试图将products对象保存为JSON文件。这是我所需的唯一结果,其余结果将被删除/取消设置: []JSON ->{0} -->[]products 但我
[]JSON
->{0}
-->[]username
-->[]avatar
-->[]rep
-->[]products
-->[]groups
-->[]feedbacks
-->[]online
-->[]staff
我试图将products对象保存为JSON文件。这是我所需的唯一结果,其余结果将被删除/取消设置:
[]JSON
->{0}
-->[]products
但我似乎有点困惑,因为我不太熟悉数组在PHP中的工作方式。以下是我目前正在尝试的一个角度:
<?php
$str = file_get_contents('test.json');
$json_decoded = json_decode($str,true);
foreach($json_decoded as $index){
unset($json_decoded[$index][???]);
}
file_put_contents('cleaned.json', json_encode($json_decoded));
?>
提前谢谢你,即使是朝着正确的方向推进,我们也非常感激 创建一个新数组($products
),迭代旧数组,并将products
设置为一个属性,而不是取消设置每个数组
$products=[];
foreach($json_解码为$index){
$products[$index]=[
'products'=>$json_解码[$index]['products']
];
}
文件内容('cleaned.json',json编码($products));
您可以像这样组成一个新的产品阵列:
[
{
"products": ["Big-01"]
},
{
"products": ["Big-02"]
},
{
"products": ["Big-03"]
},
{
"products": ["Big-04"]
},
{
"products": ["Big-05"]
}
]
$products=[];
foreach($json_数据为$value){
$products[]['products']=$value['products'];
}
文件内容('cleaned.json',json编码($products));
这将产生如下json对象:
[
{
"products": ["Big-01"]
},
{
"products": ["Big-02"]
},
{
"products": ["Big-03"]
},
{
"products": ["Big-04"]
},
{
"products": ["Big-05"]
}
]
从你的片段。试试这个
<?php
$str = '[{"username":["1"],"avatar":["yellow"],"rep":["etc"],"products":["Big"],"groups":["small"],"feedbacks":["small"],"online":["small"],"staff":["small"]}]';
$json_decoded = json_decode($str,true);
foreach($json_decoded as $value) {
$products = $value['products'];
}
print_r( $products);
?>
谢谢你的提示,我甚至没有考虑这个问题,你们两个已经告诉我基本上相同的解决方案了。由于某种原因,我对空的cleaned.json文件有问题。我要试着弄清楚到底发生了什么。非常感谢..将其分配给一个新变量。效率更高。以后可能需要其他数据<代码>$product=$json_解码->产品;我已经检查了你的代码片段&更新了我的答案,使用数组而不是object。谢谢,这就是问题所在。非常感谢你的帮助。非常感谢你的帮助。您对数组的处理方法与另一个答案中解释的相同。我真是太感谢你了,我正为此发愁呢。
Array
(
[0] => Big
)