尝试从json文件中删除字段和值(“ID”): 有人可以帮忙吗?
JSON:
[{
"Rating": "1600",
"ID": "16733310",
"Name": "LARRATEGUI,MARTIN",
"Expires": "1000.10.10"
},{
"Rating": "1353",
"ID": "16429901",
"Name": "ADDABBO,ERIC M",
"Expires": "1000.10.10"
}]
试过这个:
<?php
$file = file_get_contents("uscf.json");
$file = str_replace('"ID": "[0-9][0-9][0-9][0-9]",','',$file);
$array = json_decode($file, true);
unset ($array.ID);
echo $array;
?>
期望的结果
[{
"Rating": "1600",
"Name": "LARRATEGUI,MARTIN",
"Expires": "1000.10.10"
},{
"Rating": "1353",
"Name": "ADDABBO,ERIC M",
"Expires": "1000.10.10"
}]
答案 0 :(得分:1)
解码后处理数据几乎总是更容易,而不是试图直接操作JSON。
解码文件中的JSON,从所有数组中删除ID
元素,然后将更新后的数组的JSON写回文件。
$array = json_decode(file_get_contents("uscf.json"), true);
foreach ($array as &$el) {
unset($el['ID']);
}
file_put_contents("uscf.json", json_encode($array));
答案 1 :(得分:0)
为了不改变原始数据,我将原始数组映射到一个新数组,并通过array_diff_key()
删除ID
个键。
$array = json_decode(file_get_contents("uscf.json"), true);
$filter = ['ID' => true]; // only the key is important
$newArray = array_map(function($item) use ($filter) {
return array_diff_key($item, $filter);
}, $array);