Вставить несколько массивов в массив для хранения в корзине CodeIgniter - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть массив из цикла foreach, как это:

Array ( 
    [id] => 2 
    [qty] => 1 
    [price] => 130000 
    [name] => 0002/PNBP/411971/1/02/18 
) 
Array ( 
    [id] => 3 
    [qty] => 1 
    [price] => 120000 
    [name] => 0003/PNBP/411971/1/02/18 
) 
Array ( 
    [id] => 4 
    [qty] => 1 
    [price] => 150000 
    [name] => 0004/PNBP/411971/1/02/18 
)

Я хочу вставить массив данных в массив, как это:

Array( 
    Array ( 
        [id] => 2 
        [qty] => 1 
        [price] => 130000 
        [name] => 0002/PNBP/411971/1/02/18 
    ), 
    Array ( 
        [id] => 3 
        [qty] => 1 
        [price] => 120000 
        [name] => 0003/PNBP/411971/1/02/18 
    ), 
    Array ( 
        [id] => 4 
        [qty] => 1 
        [price] => 150000 
        [name] => 0004/PNBP/411971/1/02/18 
    )
);

Я пытаюсь и код, как это:

$data = array();
foreach ($_POST['id_kuitansi'] as $id_kuitansi){
    $detail_kuitansi = $this->kuitansi_model->detail($id_kuitansi);
    $i = $this->input;
    $data = array(
      'id' => $id_kuitansi,
      'qty' => '1',
      'price' => $detail_kuitansi['nilai'],
      'name' => $detail_kuitansi['no_kuitansi']
    );
    print_r($data);
    //$this->cart->insert($data);
}

Ответы [ 3 ]

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

Проблема решена с помощью этого кода:

foreach ($_POST['id_kuitansi'] as $id_kuitansi)
{
    $detail_kuitansi = $this->kuitansi_model->detail($id_kuitansi);
    $i = $this->input;
    $data[] = array(
      'id' => $id_kuitansi,
      'qty' => '1',
      'price' => $detail_kuitansi['nilai'],
      'name' => $detail_kuitansi['no_kuitansi']
    );
}
//print_r($data);
$this->cart->insert($data);

Спасибо, Мухаммед ...

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

всякий раз, когда нам нужно вставить несколько данных в одном запросе, мы можем использовать пользовательский пакет для вставки данных.например,

$data = $arrInsert = array();
foreach ($_POST['id_kuitansi'] as $id_kuitansi){
    $detail_kuitansi = $this->kuitansi_model->detail($id_kuitansi);
    $i = $this->input;
    $data = array(
      'id' => $id_kuitansi,
      'qty' => '1',
      'price' => $detail_kuitansi['nilai'],
      'name' => $detail_kuitansi['no_kuitansi']
    );
    //print_r($data);
    $arrInsert[] = $data;
    //$this->cart->insert($data);
}
$this->db->insert_batch('tableName', $arrInsert);

В пакете вставки вы можете заменить tableName на имя таблицы.

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

Попробуйте это,

$data = array();
foreach ($_POST['id_kuitansi'] as $id_kuitansi){
    $detail_kuitansi = $this->kuitansi_model->detail($id_kuitansi);
    $i = $this->input;
    $data[] .= array( 
      'id' => $id_kuitansi,
      'qty' => '1',
      'price' => $detail_kuitansi['nilai'],
      'name' => $detail_kuitansi['no_kuitansi']
    );
    print_r($data);
    //$this->cart->insert($data);
}

Вы просто переназначали значения в $ data каждый, в то время как вам нужно добавить значение массива в массив $ data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...