记录两个小坑:js的长整型精度问题、php unset数组后再进行json编码会数据变成字典

js的长整型精度问题

  • 超过15位的长整型js会自动进行进位,传值时需要加上在参数上加""转换为字符串
    onclick="del('<?= $val['song_id']?>',<?=$params['id']?>)">
function del(song_id,id) {
        console.log(song_id);
        var del=confirm("确认删除吗!");
        if(!del){
            return false;
        }else {
            $.ajax({
                url: '/classification-info/delete-song',
                type: 'post',
                dataType: 'json',
                        layer.closeAll();
                        layer.msg(result.msg);
                    }
                }
            });
        }
    }

Php unset数组后再进行json编码会数据变成字典

  • 错误的,这样得到的$song是字典格式:
foreach ($new_song_ids as $k => $v) {
        foreach ($new_song_ids as $k => $v) {
          if ($params['song_id'] == $v) {
            unset($new_song_ids[$k])
          }
        }
    }
    $song->song_ids = json_encode($new_song_ids);

  • 正确的,得到的$song是数组格式:
$song_ids = [];
        foreach ($new_song_ids as $k => $v) {
          if ($params['song_id'] == $v) {
            continue;
          }
          $song_ids[] = $v;
        }
        $song->song_ids = json_encode($song_ids);
        $song->save();

https://www.cnblogs.com/Gumi-21/p/17001225.html

posted @ 2022-12-23 17:42  Gumi-21  阅读(46)  评论(0)    收藏  举报