你好,我有大约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循环来完成
答案 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 MultipleIterator和prepared 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
}