php json_encode 细节

$exp = [0, 1, 2, 3, 4, 5];

echo sprintf("exp %s \n", json_encode($exp)); #exp [0,1,2,3,4,5]

$exp1 = [0, 1, 2, 3, 4, 5];
unset($exp1[0]);

echo sprintf("exp1 %s \n", json_encode($exp1)); #exp1 {"1":1,"2":2,"3":3,"4":4,"5":5}

$exp2 = [0, 1, 2, 3, 4, 5];
unset($exp2[5]);

echo sprintf("exp2 %s \n", json_encode($exp2)); #exp2 [0,1,2,3,4]

就是说
如果key不连续 或者 不从0开始 , 那么 , json_encode的结果就是js的对象而不是数组
虽然对象和数组都可以用 下标 | 键值 来访问 , 但是对象是无法 push , pop的
在vue1.0里面,对象是无法$set的 , 可能因为这些细小的差别而出现问题

    原文作者:kyanag
    原文地址: https://segmentfault.com/a/1190000007835992
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞