2015-12-05 3 views
1

Привет всем У меня есть около 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 

, пожалуйста, помогите мне достичь этой я знать это может быть сделано foreach loop php

+2

Что вы пытаетесь? Вы можете использовать 'foreach ($ array1 as $ key => $ value)' и ссылаться на ключ в других массивах с помощью '$ array2 [$ key]' для получения соответствующих значений? – Tristan

+0

Я думаю, вы просто задали один вопрос здесь http://stackoverflow.com/questions/34101823/php-foreach-loop-and-addmore-button-in-a-form?noredirect1_comment55955910_34101823 Мисс @Sonam? –

ответ

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]); 
} 
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 
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 
0

Так же н.у.к. элементов доступны в каждом массиве. Таким образом, цикл будет выполняться для каждого массива за одни и те же времена.

Во-первых, найдите размер массива любого массива.

$arraySize=sizeof($arr1); Предполагалось, что $arr1 как массив I.

Во-вторых, теперь сверните его.

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 
} 
Смежные вопросы