我有一个包含3页的表单,每个页面都有不同的字段 在我的控制器中,我能够以json格式生成数据,如
控制器代码
$input = $request->all();
unset($input['_token']);
unset($input['submit']);
$form_attributes = json_encode($input);
dd($form_attributes);
输出为
"{"name":"test","student":"yes","email":"test.student@gmail.com","format":"auto",
"lists":["1,2"],"class_lists":["2,5"],"status":"1"}"
我没有显示完整的表格,以便用小数据轻松理解
我想把上面的内容作为
它的数组应该保存为一个主数组Student然后是page1数组page2数组,然后是page3数组
它应该是
"Student":[{"arraypage1":[{"name":"test","student":"yes","email":"student@gmail.com"}],
"arraypage2":[{"format":"auto","lists":["1,2"]}],
"arraypage3":[{"class_lists":["2,5"],"status":"1"}]]"
请帮我按上述格式对这些数据进行编码 谢谢
答案 0 :(得分:1)
您可以轻松地以所需格式构建关联数组,然后json_encode()
:
$formattedOutput = Array(
'student' => Array(
'arraypage1' => Array(
'name' => $input['name'],
'student' => $input['student'],
'email' => $input['email']
),
'arraypage2' => Array(
'format' => $input['format'],
'lists' => $input['lists']
),
'arraypage3' => Array(
'class_lists' => $input['class_lists'],
'status' => $input['status']
)
)
);
$form_attributes = json_encode($formattedOutput);
确切的密钥名称可能有所不同,但您应该明白这一点。
<强>更新强>
要获得方括号,您可以使用其他Array()
:
$formattedOutput = Array(
'student' => Array(
Array('arraypage1' =>
Array(
Array(
'name' => $input['name'],
'student' => $input['student'],
'email' => $input['email']
)
)
),
Array('arraypage2' =>
Array(
Array(
'format' => $input['format'],
'lists' => $input['lists']
)
)
),
Array('arraypage3' =>
Array(
Array(
'class_lists' => $input['class_lists'],
'status' => $input['status']
)
)
)
)
);
有关详细信息,请参阅此帖子:no square bracket json array