我有2个关联数组。
Array ( [title1] => test1 [title2] => test2 [title3] => test3 )
和
Array ( [image1] => images1.jpeg [image2] => images2.jpg [image3] => images3.png )
我想将每个标题和图像名称插入数据库列(图像标题和图像名称)。
怎么可能?无论如何要合并它们,然后插入?
答案 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);