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:★★★★★
额,我又碰到了大神了,啥也不懂,默默的转身走掉了
坐个沙发。。表示没看懂。