我有一个这样的数组:
Array (
[0] => A3C0101
[1] => Kun
[2] => Kame
[3] => 25.08. 14:00
[4] => NE
[5] => Sv
[6] => A3C0103
[7] => Popo
[8] => Ska
[9] => 24.08. 17:00
[10] => SO
[11] =>
[12] => A3C0105
[13] => Muka
[14] => Stran
[15] => 24.08. 14:00
[16] => SO
[17] =>
[18] => A3C0107
[19] => Lojoe
[20] => ©kvor
[21] => 25.08. 17:00
[22] => NE
[23] =>
...
...
...
...
...
[467] =>
)
我需要将其与每六个值分开。我想让MySql像这样插入:
INSERT INTO `table` (`id` ,`one` ,`two`, `date` ,`den` ,`type`)
VALUES
('A3C0101', 'Kun', 'Kame', '25.08. 14:00', 'NE', 'Sv'),
('A3C0103', 'Popo', 'Ska', '24.08. 17:00', 'SO', ''),
('A3C0105', 'Muka', 'Stran', '24.08. 14:00', 'SO', ''),
('A3C0107', 'Lojoe', '©kvor', '25.08. 17:00', 'NE', ''),
...
...
...
每六个形成一个插入物。希望你能理解。
感谢您的任何建议!! :-)
菲 利 普
这个相当丑陋的循环应该可以解决问题。由于所有数组元素似乎都是字符串,因此这很容易。如果没有,您可以在内部循环中插入另一个开关来处理需要日期格式或数字的特定元素。
$i=0;
while($i<floor(count($yourArray)/6))
{
$sql="INSERT INTO `table` (`id` ,`one` ,`two`, `date` ,`den` ,`type`)
VALUES (";
for($j=0;$j<6;$j++)
{
$sql.="'".$yourArray[$i+$j]."', ";
}
$sql=rtrim($sql, ',');
$sql.=");";
// Run insert statement here.
$i+=6;
}
你可以为此使用 php 函数array_chunk()
。见下文:
// take array of 6
$input_array = array("1","2","3","4","5","6");
// divide array in 2
$divided_array = array_chunk($input_array, 2));
foreach($divided_array as $value)
{
mysql_query("insert into `table_name` (col1,col2) values '".$value[0]."','".$value[1]."')");
}
试试这个。将数组分块,然后将其内爆。如果分块数组的元素少于 6 个,则插入将失败 引用array_chunk
//chunk the array in size of 6 where $arr is your array
$arr_chunked = array_chunk($arr, 6);
foreach($arr_chunked as $key=>$value)
{
if(is_array($value) && count($value)>0)
{
//prepare a string separated by comma for insert
$insert_values = implode("','", $value) ;
$insert_string = "'".$insert_values."'";
//use the $insert_string to insert in database
}
}