PHP unset使用int索引返回我的json数组

时间:2016-02-16 12:35:25

标签: php json unset

我的json索引卸妆有问题,到目前为止我试过这个

$cars = json_decode($json_user , true);
foreach ($cars as $key => $value) {
    if (in_array('BH', $value)) {
        unset($cars[$key]);
    }
}
echo $cars = json_encode($cars);

使用JSON内容

[{"code":"AB"},{"code":"BC"},{"code":"CD"}]

当使用上面的脚本删除包含BC的索引时,它会返回此

{"0":{"code":"AB"},"2":{"code":"CD"}}

而不是

[{"code":"AB"},{"code":"CD"}]

2 个答案:

答案 0 :(得分:2)

JSON格式基于JavaScript语法,JavaScript数组不能包含稀疏键。尝试删除当前键并重新索引数组:

echo $cars = json_encode(array_values($cars));

答案 1 :(得分:1)

它按预期工作。 PHP数组是关联映射。删除密钥不会影响阵列的其他密钥。

在将其编码为JSON之前,使用array_values()重新编制索引import shutil import requests url = 'http://example.com/img.png' response = requests.get(url, stream=True) with open('img.png', 'wb') as out_file: shutil.copyfileobj(response.raw, out_file) del response