これに対する答えは、ご想像のとおり、達成しようとしていることによって異なります。
2つのアレイは次のとおりであると想定します(デモンストレーションの目的で)。
$arrayA = array(
'Alpha' ,
'Bravo' ,
'Charlie'
);
$arrayB = array(
'Zulu' ,
'Yankee' ,
'Xray'
);
ここで、これらの値をテーブル(参照しやすいようにthe_tableと呼びます)に配置する場合は、次のように単一の行を作成します。
column_a | column_b
"Alpha,Bravo,Charlie" | "Zulu,Yankee,Xray"
次に、生成するSQLは次のとおりです。
INSERT INTO `the_table` ( `column_a` , `column_b` )
VALUES ( "Alpha,Bravo,Charlie" , "Zulu,Yankee,Xray" )
そして、そのSQLを生成するPHPは
$sqlTpl = 'INSERT INTO `the_table` ( `column_a` , `column_b` )
VALUES ( "%s" , "%s" )';
$sqlStr = sprintf( $sqlTpl ,
implode( ',' , $arrayA ) ,
implode( ',' , $arrayB ) );
代わりに、2つの配列のそれぞれから1つのペアを使用して、一致する行のセットを作成したい場合は、次のようになります。
column_a | column_b
"Alpha" | "Zulu"
"Bravo" | "Yankee"
"Charlie" | "Xray"
SQLは
INSERT INTO `the_table` ( `column_a` , `column_b` )
VALUES ( "Alpha" , "Zulu" ) ,
( "Bravo" , "Yankee" ) ,
( "Charlie" , "Xray" )
そしてそれを生み出すPHPは
$sqlTpl = 'INSERT INTO `the_table` ( `column_a` , `column_b` )
VALUES ( %s )';
$sqlArr = array();
foreach( $arrayA as $k => $v )
$sqlArr[] = '"'.$arrayA[$k].'" , "'.$arrayB[$k].'"';
$sqlStr = sprintf( $sqlTpl ,
implode( ' ) , ( ' , $sqlArr ) );