php – 使用JSON.stringify时不需要的数组索引
发布时间:2020-12-13 21:45:04 所属栏目:PHP教程 来源:网络整理
导读:我使用 JSON.stringify方法将数组传递给服务器. 我有一个有4个元素的数组: arr[10] = 1;arr[20] = 1;arr[30] = 1;arr[40] = 1; 然后我这样做: arr = JSON.stringify(arr); 然后将其发送到服务器: jQuery.ajax({ type: "post",url: baseurl+"profile/mprof
我使用
JSON.stringify方法将数组传递给服务器.
我有一个有4个元素的数组: arr[10] = 1; arr[20] = 1; arr[30] = 1; arr[40] = 1; 然后我这样做: arr = JSON.stringify(arr); 然后将其发送到服务器: jQuery.ajax({ type: "post",url: baseurl+"profile/mprofile/action/ratings/add_ratings",data:{"checkbox":checkbox,"review":review,"speciality":speciality,"arr":arr},success: function(data,status) { jQuery('#header-error').html(data); } }); 我在PHP中获取数组: $arr = $this->ci->input->post('arr'); $arr = json_decode($arr); print_r($arr) ; die ; 结果是 Array ( [0] => [1] => [2] => [3] => [4] => [5] => [6] => [7] => [8] => [9] => [10] => 1 [11] => [12] => [13] => [14] => [15] => [16] => [17] => [18] => [19] => [20] => 1 [21] => [22] => [23] => [24] => [25] => [26] => [27] => [28] => [29] => [30] => 1 [31] => [32] => [33] => [34] => [35] => [36] => [37] => [38] => [39] => [40] => 1 ) 为什么会这样? 解决方法
这就是javascript数组的工作方式.将值设置为超出范围的索引时,将展开数组,成功设置值并将所有“缺失”值设置为undefined.
您被PHP行为所破坏,这种行为混合了数组和字典(或“关联数组”,PHP谈话)之间的差异. 要避免此行为,只需在javascript而不是数组中创建字典. var arr = {}; arr[10] = 1; arr[20] = 2; 此外,在PHP端,您应该将true作为第二个参数传递给json_decode. json_decode($arr,true) 这将使它返回数组而不是stdclass. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |