解决PHP数组json_encode有数字下标

后端人员写接口时候,经常会对数组进行条件过滤,当数组被unset数据后,用json_encode格式化时会带有下标

$scoreData=[
    ['uid'=>'1001','name'=>'张三','score'=>'80'],
    ['uid'=>'1002','name'=>'李四','score'=>'59'],
    ['uid'=>'1003','name'=>'王五','score'=>'74'],
    ['uid'=>'1004','name'=>'李六','score'=>'93'],
];
foreach($scoreData as $k=>$v) {
    if ($v['score'] < 60) {
        unset($scoreData[$k]);
    }
}
echo json_encode($scoreData);

返回值如下

{
    "0": {
        "uid": "1001",
        "name": "张三",
        "score": "80"
    },
    "2": {
        "uid": "1003",
        "name": "王五",
        "score": "74"
    },
    "3": {
        "uid": "1004",
        "name": "李六",
        "score": "93"
    }
}

显然上面的返回值不符合我们的预期结果,我们需要无下标的json数据,上述代码只需稍微改动一下,用PHP自带array_values就能达到目的

echo json_encode(array_values($scoreData));

返回值如下

[{
    "uid": "1001",
    "name": "张三",
    "score": "80"
}, {
    "uid": "1003",
    "name": "王五",
    "score": "74"
}, {
    "uid": "1004",
    "name": "李六",
    "score": "93"
}]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值