如何为数据数组sql创建短代码

时间:2018-11-19 07:39:34

标签: mysql sql codeigniter

我已经可以使用以下查询将数据插入数据库。但是我想缩短我的几个列名的代码,因为我就像一个继续编号一样。我已经按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);

这是我的结果 enter image description here

我的问题是如何为我的data []数组重新编码,所以我不需要手动键入m1,m2,m3到m20。对不起,我的英语不好

1 个答案:

答案 0 :(得分:0)

    $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);