2016-03-26 30 views
0

insert_batch kullanarak dizi verilerini aşağıda gösterildiği gibi etkin kayıtta eklemeye çalışıyorum: Diziyi insert_batch veya başka bir şekilde kullanarak eklenecek herhangi bir fikir mi?Codeigniter içinde insert_batch dizisi oluşturma

$detailBill=array(
     'TraineeID'=>$inputall['ID'], 
     'wDate'=>$inputall['wDate'], 
     'ACH'=>$inputall['Hour'], 
     'CRA'=>$inputall['Retention'], 
     'Amount'=>$inputall['PaybleAmt'], 
     'forMonth'=>$inputall['monthid'] 
    ); 

$this->db->insert_batch("tbl_submit_coursefee", $detailBill); 

Çıktı: Sana diziler yeniden düzenlemek istiyorum varsayıyorum

Array 
(
    [TraineeID]=> Array 
    (
     [0]=>3001 
     [1]=>3002 
     [2]=>3003 
     [3]=>3004 
     [4]=>3005 
     [5]=>3006 
     [6]=>3007 
     [7]=>3008 
     [8]=>3009 
     [9]=>3010 
     [10]=>3011 
     [11]=>3012 
     [12]=>3013 
    ) 
    [wDate]=> Array 
    (
     [0]=> 
     [1]=> 
     [2]=> 
     [3]=> 
     [4]=> 
     [5]=> 
     [6]=> 
     [7]=> 
     [8]=> 
     [9]=> 
     [10]=> 
     [11]=> 
     [12]=> 
    ) 
    more field here.... 
) 
+0

, https://codeigniter.com/user_guide/database/query_builder.html#inserting-data de kılavuzun tekrar kontrol edin: Bu deneyin. Dizininizin yapısının – Vickel

cevap

1

. Biraz şu anda ne yaptığını karıştıran

$a = array(
    'TraineeID' => array(
     3001, 
     3002 
    ), 
    'wDate' => array(
     '123', 
     '234' 
    ), 
    'Hour' => array(
     12, 
     13 
    ) 
); 

$keys = array_keys($a);//counting outer array 

if(count($keys[0]) > 0)//checking if inner array has values at all 
{ 
    $new_a = [];//initializing expecting array 

    foreach($a[$keys[0]] as $k => $v) 
    { 
     for($i = 0; $i < count($keys); $i++) 
     { 
      $new_a[$k][$keys[$i]] = $a[$keys[$i]][$k]; 
     } 
    } 
} 

//echo '<pre>', var_dump($new_a); 
+0

gibi nasıl görünmesi gerektiğini çok iyi açıklıyor. Çok teşekkür ederim. Bu gerçekten istediğim şey. –