如何在PHP中将对象数组转换为关联数组?附jQuery传参代码
如何将AJAX提交的JS对象数组转为PHP关联数组
现状说明
你当前的JS代码通过jQuery AJAX提交对象数组时,jQuery会自动将数组序列化为PHP可识别的表单格式,后端其实可以直接拿到关联数组,无需额外复杂转换。
后端直接处理方法
直接通过$_POST['arr']获取数据,它本身就是一个多维关联数组。你可以用以下代码验证并使用:
<?php // check.php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 直接获取转换好的关联数组 $teacherClasses = $_POST['arr']; // 打印查看数组结构 var_dump($teacherClasses); // 遍历数组示例 foreach ($teacherClasses as $item) { echo "教师:{$item['teacherName']},科目:{$item['subjectName']},课时:{$item['totalClass']}<br>"; } } ?>
可选方案:用JSON格式传输(更简洁)
如果想更明确地用JSON格式传输数据,可修改前端AJAX代码:
$('#myForm').submit(function (e) { e.preventDefault(); // 阻止表单默认跳转 console.log(arr); $.ajax({ type: 'POST', url: 'http://localhost/Backend/check.php', contentType: 'application/json', // 指定内容类型为JSON data: JSON.stringify(arr), // 将JS数组转为JSON字符串 success: function (data) { $('#output').html(data); } }) })
后端对应处理代码:
<?php // check.php if ($_SERVER['REQUEST_METHOD'] === 'POST') { // 读取原始JSON数据 $jsonData = file_get_contents('php://input'); // 解析为关联数组(第二个参数设为true) $teacherClasses = json_decode($jsonData, true); var_dump($teacherClasses); } ?>
内容的提问来源于stack exchange,提问作者Lokesh Singh
相关产品推荐
相关产品推荐

