Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JSON数组中提取一个对象/组,并使用PHP将其保存到新文件中。我挂断了代码的数组部分_Php_Json - Fatal编程技术网

从JSON数组中提取一个对象/组,并使用PHP将其保存到新文件中。我挂断了代码的数组部分

从JSON数组中提取一个对象/组,并使用PHP将其保存到新文件中。我挂断了代码的数组部分,php,json,Php,Json,我尝试循环使用以下json结构并从中提取产品: []JSON ->{0} -->[]username -->[]avatar -->[]rep -->[]products -->[]groups -->[]feedbacks -->[]online -->[]staff 我试图将products对象保存为JSON文件。这是我所需的唯一结果,其余结果将被删除/取消设置: []JSON ->{0} -->[]products 但我

我尝试循环使用以下json结构并从中提取产品:

[]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
)