将表单数据放在多个数组中并以json格式保存

时间:2017-02-15 07:35:50

标签: php arrays json laravel

我有一个包含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"}]]"

请帮我按上述格式对这些数据进行编码 谢谢

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