我正在尝试迭代这个json文件并过滤掉我想要拆分结果的不需要的元素,这样我就有了一个Customers列表或者一个供应商列表 json文件:
{
"$descriptor": "Test",
"$resources": [
{
"$uuid": "281d393c-7c32-4640-aca2-c286f6467bb1",
"$descriptor": "",
"customerSupplierFlag": "Customer"
},
{
"$uuid": "87a132a9-95d3-47fd-8667-77cca9c78436",
"$descriptor": "",
"customerSupplierFlag": "Customer"
},
{
"$uuid": "8a75345c-73c7-4852-865c-f468c93c8306",
"$descriptor": "",
"customerSupplierFlag": "Supplier"
},
{
"$uuid": "a2705e38-18d8-4669-a2fb-f18a87cd1cc6",
"$descriptor": "",
"customerSupplierFlag": "Supplier"
}
]
}
例如
{
"$uuid": "281d393c-7c32-4640-aca2-c286f6467bb1",
"$descriptor": "",
"customerSupplierFlag": "Customer"
},
{
"$uuid": "87a132a9-95d3-47fd-8667-77cca9c78436",
"$descriptor": "",
"customerSupplierFlag": "Customer"
},
我的PHP代码是
$array = json_decode($result, true);
for ($i = 0; $i < count($array['$resources']); $i++){
foreach ($array['$resources'][$i]['customerSupplierFlag'][Customer] as $item)
{
// do what you want
echo $item['customerSupplierFlag' ]. '<br>';
echo $item['$uuid'] . '<br>';
}
}
我几天来一直在努力解决这个问题似乎正在翻阅相同的文章,现在得到任何建议都会受到赞赏。
答案 0 :(得分:10)
$data = file_get_contents('./your_json_data.txt');
$json = json_decode($data, 1);
$resources = $json['$resources'];
$suppliers = array();
$customers = array();
foreach ($resources as $rkey => $resource){
if ($resource['customerSupplierFlag'] == 'Customer'){
$customers[] = $resource;
} else if ($resource['customerSupplierFlag'] == 'Supplier') {
$suppliers[] = $resource;
}
}
header('Content-Type: application/json');
echo json_encode($customers);
echo json_encode($suppliers);
die();
答案 1 :(得分:1)
$array = json_decode($json, true);
$flag = "Supplier";
$resources = array_filter($array, function ($var) use ($flag) {
return ($var['customerSupplierFlag'] == $flag);
});
print_r($resources);