-2

100 個の値を持つ配列があります。データベーステーブルの最初の行に最初の10個の値を挿入したい. 最初の 10 個の値 ( col1,col2,...col10) は、db テーブルの 10 列を表します。そして、次の 10 (11-20) を 2 行目に挿入したいと思います。では、その特定の配列を反復するにはどうすればよいでしょうか?

if($key % 10 == 0) のようなif句を使用しました

4

3 に答える 3

6
$my_array = array('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b', 'b',);

$splited_array = array_chunk($my_array, 10);

foreach ($splited_array as $new_array) {

  print_r($new_array);
  // insert a new row with value of $new_array
}
于 2013-02-27T05:07:55.967 に答える
0
//I assume you get this by magic
$inarray = array(...)

//create your command and specify your bound parameters
$stmt = $dbh->prepare("INSERT INTO table (c1, c2, cn..., c10) VALUES (:c1, :c2, ..., :c10)");
$stmt->bindParam(':c1', $c1);
$stmt->bindParam(':c2', $c2);
//...
$stmt->bindParam(':c10', $c10);

//loop over the array, hopping ten items at a time
for ($i = 0; $i < 100; $i += 10)
{
    // update the value of the bound parameter
    $c1 = $inarray[$i + 0];
    $c2 = $inarray[$i + 1];
    //...
    $c10 = $inarray[$i + 9];
    //execute the insert
    $stmt->execute();
}
于 2013-02-27T05:11:29.997 に答える
0

これを試して :

$res    = array();
$row    = 0;
for($i=0;$i<count($array);$i++){
   if($i % 10 == 0 && $i != 0){
      $row++;
   }
   $res[$row][]  = $array[$i];
}

echo "<pre>";
print_r($res);

foreach($res as $val){
    $col1   = $val[0];
    $col2   = $val[1];
    ..... //// so on
    $col10   = $val[9];

    Insert into databse
}
于 2013-02-27T05:06:31.060 に答える