codeigniter изменить массив из строки для insert_batch - PullRequest
0 голосов
/ 06 декабря 2018

Это мой ввод с формы $data, я хочу сохранить этот ввод.

$data = "39X3,29X5";

это мой код преобразования строки в массив

<code>$data = explode(",", $data);

$out = array();
$step = 0;

foreach($data as $key=>$item){
   foreach(explode('X',$item) as $value){
   $out[$key][$step++] = $value;
}
print '<pre>';
print_r($out);
print '
';

результат

Array
(
    [0] => Array
    (
        [0] => 39
        [1] => 3
    )

    [1] => Array
    (
        [2] => 29
        [3] => 5
    )
)

но я хочу изменить ключи и исправить это для класса конструктора запросов поддержки

$this->db->insert_batch('mytable',$out). 

Как это.

array
(
    array
    (
        'number' => 39
        'prize' => 3
    ),
    array
    (
        'number' => 29
        'prize' => 5
    )
)

Я стараюсь и путаю, используя цикл.

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

измените ваш foreach цикл на следующее:

foreach($data as $key=>$item){
  $temp = explode('X',$item);
  $out[] = ['number' => $temp[0] , 'prize' => $temp[1]];
}
0 голосов
/ 06 декабря 2018

Так что вам нужно удалить внутренний foreach и поместить соответствующие значения в массив.

foreach($data as $key=>$item){
    $exp = explode('X', $item);
    $out[$key] = [
        'number' => $exp[0],
        'prize' => $exp[1]
    ];
} 

Проверить результат в demo

...