php - 如何使用laravel将不同的数组插入到不同的列数据库中
问题描述
我正在尝试使用 laravel 将两个不同的数组插入我的数据库到两个不同的列中,但我不知道如何实现。我希望 course_codes_explode 插入 course_code 列,而 course_name_explode 插入 course_name 列。
我的代码。
$course_codes_explode = [];
$course_names_explode = [];
$course_codes = [];
$course_codes = $request->get('courses_codes');
$course_names =[];
$course_names = $request->get('course_names');
$request->get('school_type');
for ($k=0; $k<count($course_codes); $k++){
array_push( $course_codes_explode, explode(",", $course_codes[$k]));
array_push($course_names_explode, explode(",", $course_names[$k]));
}
for($j=0; $j< count($course_codes_explode); $j++){
OtherSchoolsCourses::create([
'school_id' => $school_id,
'course_id' => Str::random(20),
'course_name' => $course_names_explode[$j],
'course_code' => $course_codes_explode[$j]
]);
}
course code array
array:2 [
0 => array:2 [
0 => "NUR123"
1 => "NUR178"
]
1 => array:1 [
0 => "NUR212"
]
]
course name array
array:2 [
0 => array:2 [
0 => "Nursing Culture"
1 => "Nursing Values"
]
1 => array:1 [
0 => "Hypermology"
]
]
我如何实现这一目标?
解决方案
您可以使用array_map
合并两个爆炸字符串(第一个参数为null
- 查看示例 4)
$course_codes = explode(',', $request->get('courses_codes'));
$course_names = explode(',', $request->get('course_names'));
$request->get('school_type');
$courses = array_map(null, $course_codes, $course_names);
foreach($courses as $course){
$course_code = $course[0];
$course_name = $course[1];
OtherSchoolsCourses::create([
'school_id' => $school_id,
'course_id' => Str::random(20),
'course_name' => $course_name,
'course_code' => $course_code
]);
}
您只需要确保分解后的字符串生成相同大小的数组。
希望这可以帮助。
推荐阅读
- javascript - 在 RxJS tap 中订阅是异步逻辑的坏习惯吗?
- android - 为什么我的 Firestore 上有这么多读物?
- java - 从 SQLite 迁移到 Room DB
- visual-c++ - 使用内联汇编交换数组中的 2 个整数会导致奇怪的内存值
- java - 委托自定义杰克逊反序列化器
- php - 我的导航菜单的 Css 代码在 Wordpress 主题中不起作用
- reactjs - 在 github 操作中运行时 mv 命令不起作用
- python - 水果袋交换问题:快速 python 算法在两个列表之间交换包装项目而不改变项目计数
- python - 如何使用 .iter_content 正确读取大块的 html?
- java - OpenGL(LWJGL 3)剔除不在视锥体中的地形顶点/三角形