如何合并我的数组以进行数据库插入?

时间:2011-03-28 09:35:18

标签: php

我有2个关联数组。

Array ( [title1] => test1 [title2] => test2 [title3] => test3 )

 Array ( [image1] => images1.jpeg [image2] => images2.jpg [image3] => images3.png ) 

我想将每个标题和图像名称插入数据库列(图像标题和图像名称)。

怎么可能?无论如何要合并它们,然后插入?

4 个答案:

答案 0 :(得分:3)

$finalArray = array();
// Use min to avoid improper "OutOfBounds"
$lengthOfArray = min(count($array1), count($array2));

for(i = 1; i <= $lengthOfArray; $i++) {
   array_push($finalArray,
       array(
         'title' => $array1['title' + $i],
         'image' => $array2['image' + $i]
       )
   );
}

有了这个,在你的finalArray中你将拥有一个标题元组,每个数据库条目都有一个图像。

答案 1 :(得分:2)

答案 2 :(得分:1)

也许不是组合数组,而是使用foreach从两个数组构建查询:

//ARRAYS
$a1=array('title1' => 'test1','title2' => 'test2','title3' => 'test3',);
$a2=array('image1' => 'images1.jpeg', 'image2' => 'images2.jpg', 'image3' => 'images3.png');

$fos=''; //we will collect values into this string
foreach ($a1 as $k=>$v) { //we iterate through the first array
    $k2=substr($k, 5);  //we get the number from the array key (like 2 from title2)
    $fos.=empty($fos) ? '' : ', '; //adding commas when needed
    $fos.="('{$v}', '{$a2['image'.$k2]}')"; //adding the right values to the values string
}

$q="insert into images (title, filename) values $fos"; //and finishing up the query

在这种情况下,构造的查询将如下:

insert into images (title, filename) values 
('test1', 'images1.jpeg'), 
('test2', 'images2.jpg'), 
('test3', 'images3.png')

注意:当然,数组值需要正确转义以供数据库使用

答案 3 :(得分:-1)

array_merge($array1, $array2);