2014-09-06 43 views
0

我有2個變量,在這裏我們去:如何將多個紀錄laravel

@name = array('a','b','c'); 
@age = array('1','2','3'); 

然後我要插入列數組的name價值a和列age價值1和循環,直到結束。

我試圖用這個,但非常識:

$t = count($name); 
    DB::table('users')->insert(array(
     for ($i=0; $i < $t ; $i++) { 
     } 
    array('name' => $name.$i, 'dob' => $dob.$i) 
    )); 

如何解決呢?

回答

0

這樣:

$name = 'whatever name - '; 
$age = 'whatever age - '; 

foreach(range(1,3) as $i) 
{ 
    DB::table('users')->insert(
     array('name' => $name.$i, 'dob' => $dob.$i) 
    ); 
} 

或者,讓您的數組:

$names = array('a','b','c'); 
$ages = array('1','2','3'); 

foreach($names as $name) 
{ 
    foreach($ages as $age) 
    { 
     DB::table('users')->insert(
      array('name' => $name, 'age' => $age) 
     ); 
    } 
} 
+0

它不插入多行,其只是單行一行一個 – 2016-08-20 11:03:19

0
if u want to insert 
    name age 
    a  1 
    b  2 
    c  3 
like this then use following code 

    $names = array('a','b','c'); 
    $ages = array('1','2','3'); 

    foreach($names as $index => $name) 
    { 
     $data=array('name' => $name, 'age' => $ages[$index]); 
     DB::table('users')->insert($data); 

    } 

    if u want to insert 
    name age 
    a  1 
    a  2 
    a  3 
    b  1 
    b  2 
    b  3 
    c  1 
    c  2 
    c  3 
like this then use following code 
$names = array('a','b','c'); 
    $ages = array('1','2','3'); 

    foreach($names as $name) 
    { 
     foreach($ages $age){ 
     $data=array('name' => $name,'age' => $age); 
     DB::table('users')->insert($data); 
     } 

    } 
+0

它沒有插入多行,它的只是單行一個再見一個 – 2016-08-20 11:03:01

+0

我加單行也是多行 – Borna 2016-08-20 11:14:19

0

創建數據數組的數組:

$data = array(); 
foreach($names as $index => $name) 
{ 
    $item = array('name' => $name, 'age' => $ages[$index]); 
    array_push($data,$item); 

} 

Users::insert($data); // Eloquent 
OR 
DB::table('users')->insert($data); //Insert all rows