foreach循环,用于许多数组插入值

时间:2015-12-05 07:09:58

标签: php arrays foreach

你好,我有大约5个阵列有相同的元素,我想将它们的数据插入到数据库中,如

 $array1 has 3 elements a1,a2,a3
 $array2 has 3 elements b1,b2,b3
 $array3 has 3 elements c1,c2,c3

now i want to insert data into database like field1=a1,field2=b1,field3=c1
 and similery for all the values saparete entry will be there

请帮助我实现这一目标 我知道这可以通过php的foreach循环来完成

4 个答案:

答案 0 :(得分:0)

首先计算数组中的项目。

正如您所提到的,三个数组中的元素数量相同。因此,我们只需要计算任何一个数组中的数组数。让我们来$array1。使用count($array1)来计算元素数。假设它给出了3作为计数。

现在循环3次,如下所示。

for($i = 0; $i < count($array1); $i++){
    // QUERY HERE
    insert into sometable (field1, field2, field3) VALUES ($array1[$i], $array2[$i], $array3[$i]);
}

答案 1 :(得分:0)

您可以使用 SPL's MultipleIteratorprepared statements

<?php
$array1 = [ 'a1','a2','a3' ];
$array2 = [ 'b1','b2','b3' ];
$array3 = [ 'c1','c2','c3' ];

$mi = new MultipleIterator;
foreach( array($array1,$array2,$array3) as $a) {
    $mi->attachIterator( new ArrayIterator($a) );
}

//$pdo = new PDO( ..., array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
//$stmt = $pdo->prepare('INSERT INTO foo (x,y,z) VALUES (?,?,?)');   
foreach( $mi as $rec ) {
    //$stmt->execute( $rec );
    echo join(', ', $rec), "\r\n";
}

打印

a1, b1, c1
a2, b2, c2
a3, b3, c3

答案 2 :(得分:0)

假设您有5个数组,如下所示:

$a = array(1,2,3);
$b = array(11,22,33);
$c = array(11,22,33);
$d = array(11,22,33);
$e = array(11,22,33);

创建字段数组;

$fields = array('field1','field2',...);

您可以按如下方式构建数据字符串,

$counter =0;
$str = array();
for($i=0;$i<count($a);$i++)
{
  $str []= "$fields[counter] = '$a[$i]'";
  $counter++;
   $str []= "$fields[counter] = '$b[$i]'";
    $counter++;
  $str []= " $fields[counter] = '$c[$i]'";
    $counter++;
  $str []= "$fields[counter]= '$d[$i]'";
    $counter++;
  $str []= "$fields[counter]= '$e[$i]'";
    $counter++;

}
 $data = implode(',',$str);

然后执行sql查询

insert into 'table_name' $data 

答案 3 :(得分:0)

因为,每个数组中都有相同数量的元素。因此,循环将为每个阵列运行相同的时间。

首先,找到任何数组的数组大小。

$arraySize=sizeof($arr1);我假设$arr1为Ist数组。

其次,现在循环它。

for($i=0;$i<$arraySize;$i++)
{
    $arr1=$arr1[$i];
    $arr2=$arr2[$i];
    $arr3=$arr3[$i];
    $arr4=$arr4[$i];
    $arr5=$arr5[$i];

    $InsertQuery="INSERT INTO TableName SET field1='$arr1', field2='$arr2', field3='$arr3',field4='$arr4',field5='$arr5'";
    //Execute Your Query Here
}