Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按每六个值分隔数组,并进行MySql插入_Php_Mysql_Arrays - Fatal编程技术网

Php 按每六个值分隔数组,并进行MySql插入

Php 按每六个值分隔数组,并进行MySql插入,php,mysql,arrays,Php,Mysql,Arrays,我有这样一个数组: 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] =&

我有这样一个数组:

    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] => 
) 
    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', ''),
   ...
   ...
   ...
我需要用每六个值来分隔它。 我想让MySql插入像这样:

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

而($i您可以使用php函数
array\u 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个,则插入操作将失败


RTM:谢谢,阿马尔-我没有问这个问题,但我不知道这个函数存在。非常有用。即使是从
$I=1
$iI的简单循环也会忍不住想知道这个数组是从哪里来的,因为它几乎肯定不应该以这种方式展平的。@eggyal我的想法完全正确