我想从数组中删除一个元素(从json转换),但是在未设置的情况下,并在json中重新转换,数组将被编入索引。
源数组:
{"rows":
[{"c":[{"v":"Date(1409052482000)"},{"v":22},{"v":22},{"v":22},{"v":null}]},
{"c":[{"v":"Date(1409052614000)"},{"v":22},{"v":22},{"v":22},{"v":null}]},
{"c":[{"v":"Date(1409052782000)"},{"v":22},{"v":22},{"v":22},{"v":null}]}
]}
结果:
{"rows":
"2":{"c":[{"v":"Date(1409052614000)"},{"v":22},{"v":22},{"v":22},{"v":null}]},
"3":{"c":[{"v":"Date(1409052782000)"},{"v":22},{"v":22},{"v":22},{"v":null}]}
}}
问题是“2”和“3”键。我不想要这个密钥,因为我使用谷歌图表的数据,并且对这个索引密钥是明智的。
PHP代码:
$tempdata = json_decode($jsonTempLog, TRUE);
foreach ($tempdata['rows'] as $key => $row) {
if ( $logtime < $showtime) {
unset($tempdata['rows'][$key]);
}
}
echo json_encode($tempdata);
如何从数组中删除元素,保留原始的json语法?
答案 0 :(得分:4)
这样做:
$tempdata["rows"] = array_values($tempdata["rows"]);
echo json_encode($tempdata);
否则JSON认为你发送的是关联数组而不是数字数组
答案 1 :(得分:0)
这就是我的工作方式:
unset($infos[$i]);
$infos = array_values($infos);
答案 2 :(得分:0)
也许是这样的:
foreach($tempdata as $row){
$tempdata[$rows['keyfield']] = $row;
}