как создать короткий код для массива данных sql - PullRequest
0 голосов
/ 19 ноября 2018

Я уже могу вставить данные в базу данных, используя запрос ниже.Но я хочу укоротить код для моего имени в несколько столбцов, потому что это просто число с продолжением.я уже взорвал отметку на m1 = A, m2 = B, m3 = C, m4 = A и продолжаю ..

Ниже мой контроллер:

$mark = 'ABCADDBBAACBCDDABBCA';
$totalquestion = '10';

for($i=0; $i<$totalquestion; $i++):
  $no = $i+1;
  $m = substr($mark, 0, $no);
endfor;

$data[] = array(
        'TotalQuestion'   => $totalquestion,
        'Mark'   => $mark,
        'm1'    => $m[0],
        'm2'    => $m[1],
        'm3'    => $m[2],
        'm4'    => $m[3],
        'm5'    => $m[4],
        'm6'    => $m[5],
        'm7'    => $m[6],
        'm8'    => $m[7],
        'm9'    => $m[8],
        'm10'    => $m[9],
        'm11'    => $m[10],
        'm12'    => $m[11],
        'm13'    => $m[12],
        'm14'    => $m[13],
        'm15'    => $m[14],
        'm16'    => $m[15],
        'm17'    => $m[16],
        'm18'    => $m[17],
        'm19'    => $m[18],
        'm20'    => $m[19]
        );

$this->excel_import_model->insert($data);

Это мой результат введите описание изображения здесь

Мой вопрос заключается в том, как перекодировать мой массив данных [], поэтому мне не нужно вводить вручную m1, m2, m3 до m20.Извините за мой плохой английский

1 Ответ

0 голосов
/ 19 ноября 2018
    $mark = 'ABCADDBBAACBCDDABBCA';
    $totalquestion = '20';

    $data = array();
    $data = array(
        'TotalQuestion'   => $totalquestion,
        'Mark'   => $mark,
     );

    //Split String into array
    $list = str_split($mark);
    $mlist = array();

    //Loop through splited string
    for($i=0; $i<$totalquestion; $i++):
      $mlist['m'.$i] = $list[$i];
    endfor;

    //Merge here or you an even use push array in for loop itslef
    $data = array_merge($data,$mlist);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...