记录一个PHP开发中json处理的坑
2021-03-29 本文已影响0人
phpworkerman
很久没有更新了,一直在处于加班状态。在工作中处理业务代码时,碰到一个数组转JSON的处理,一个小坑但是被卡了一天。需求是这样的,mysql表中的一个字段是以 json 来存储的,这个数据是数组,业务逻辑会更新数组然后再存储,当业务中需要删除数组中的某个值时,我直接用了 unset 来进行删除,然后直接进行了转json存储,结果就是存储的数据不是数组而是对象,并且都携带了原有的数组下标。
代码示例
$arr = ['one', 'two', 'three', 'four'];
unset($arr[1]);
echo json_encode($arr);
输出{"0":"one","2":"three","3":"four"}
实际想得到的数据为["four","one","three"]
改进后
使用 unset 后进行 sort 排序,更新键名
$arr = ['one', 'two', 'three', 'four'];
unset($arr[1]);
sort($arr);
echo json_encode($arr);
输出["four","one","three"]