【问题标题】:how to insert to different array into different columns database using laravel如何使用laravel将不同的数组插入到不同的列数据库中
【发布时间】:2020-05-02 01:43:13
【问题描述】:

我正在尝试使用 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"
  ]
]

我如何做到这一点?

【问题讨论】:

    标签: php arrays database laravel


    【解决方案1】:

    您可以使用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
         ]);
    }
    

    您只需要确保分解后的字符串生成相同大小的数组。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我能够解决问题

          $school_id = Str::random(20);
          $course_id = Str::random(20);
      
          $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]));
          }
      
          $courses = array_map(null, $course_codes_explode, $course_names_explode);
      
          foreach($courses as $course){
              $course_code = $course[0];
              $course_name = $course[1];
      
              for($i=0; $i<count($course_code); $i++){
      
                  OtherSchoolsCourses::create([
                      'school_id' => $school_id,
                      'course_id' => Str::random(20),
                      'course_name' => $course_name[$i],
                      'course_code' => $course_code[$i]
                  ]);
              }
          }
      

      【讨论】:

        猜你喜欢
        • 2018-05-06
        • 2013-10-29
        • 2014-08-24
        • 2016-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多