Json数据由于数组下标未重置导致的格式问题

php有个数组转json的函数很好用,那就是json_encode,接口开发人员应该会常常用到,这里会碰到一个小问题,也就是当数组中某一元素被unset后,最后的json数据会带上下标,可以看下下面的例子:
$myarr = array('aaa','bbb','ccc');
var_dump(json_encode($myarr));

这时候屏幕打印的是下面的信息:

string(19) "["aaa","bbb","ccc"]"

而此时如果你unset了其中一个元素看看:

$myarr = array('aaa','bbb','ccc');
unset($myarr[0]);
var_dump(json_encode($myarr));

这时候打印出来的信息就发生了变化:

string(21) "{"1":"bbb","2":"ccc"}"

它自动给加上了下标1,2,这样会导致接口的格式发生变化,读取时由于格式不对,解析不到原本的数据。如何避免这种情况呢?很简单,用一个函数搞定,它就是array_values:

$myarr = array('aaa','bbb','ccc');
unset($myarr[0]);
var_dump(json_encode(array_values($myarr)));

这样再看打印的结果就是原来的格式:

string(13) "["bbb","ccc"]"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值