【发布时间】:2018-01-31 11:29:58
【问题描述】:
所以我有一个 json 字符串和一个像这样的数组:
$json_str = '{"key1":["val11", "val12", "val13"], "key2":"val2"}';
$delete_keys = array("val12");
我想从 json_str['key1'] 中删除 delete_keys 中存在的值。所以我做了以下事情:
$json_arr = json_decode($json_str, true);
$key1 = $json_arr['key1'];
foreach ($delete_keys as $key) {
$index = array_search($key, $key1);
if (isset($index))
unset($key1[$index]);
unset($index);
}
$json_arr['key1'] = $key1;
$json_str = json_encode($json_arr);
print $json_str;
现在我对 json_str 的预期结果是这样的
{"key1":["val11", "val13"], "key2":"val2"}
但是我得到了这个
{"key1":{"0":"val11", "2":"val13"}, "key2":"val2"}
如果我删除最后一个键,它会按预期工作。有人可以告诉我如何将前者作为 json 字符串而不是后者。
【问题讨论】: