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

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

6427 2

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"]"
文章评分3次,平均分5.0

本文原始地址:https://www.tiandiyoyo.com/2015/10/reset_key_of_array_for_json/
本站所有文章,除了特别注明外,均为本站原创,转载请注明出处来自www.tiandiyoyo.com

您可能还会对以下文章感兴趣:

    没有相关的文章

评论前先开启评论开关:


2 Comments

  1. 额,我又碰到了大神了,啥也不懂,默默的转身走掉了

  2. 郑永 :

    坐个沙发。。表示没看懂。

载入分页评论...