最近项目中遇到一点问题,用each循环后数据一直只能取出单独的插入数组,不能显示多维数组最后用for循环解决
var arr = []; $( ".gameprop option:selected").each(function() { var id = $(this).val(); var name = $(this).text(); for (var i = 0; i < 1; i++) { var obj = { type_id:id, name:name, }; arr.push(obj); } console.log(arr); }); var arrr = []; $('.num').each(function(){ // console.log($(this).val()); var num = $(this).val(); for (var i = 0; i < 1; i++) { var obj = { num:num, }; arrr.push(obj); } console.log(arrr); });
获取所有下拉选中的值并循环出来,然后在获取input所有输入的值并循环输出
核心代码:
var arrr = [];
for (var i = 0; i < 1; i++) { var obj = { num:num, }; arrr.push(obj); }
把获取到的数组传到后台,得到的是这样的,需要进行数组合并
但是常规的合并会变成下面这样 ,直接追加了
下面附上解决方法 ,用foreach逐条插入并用array_merge系统函数进行合并数组
foreach ($post['arr'] as $k => $v) { $data[] = array_merge($v,$post['arrr'][$k]); }
最后的效果