2013-05-07 98 views
1

我需要帮助转换此.csv文件:修改数组列表

a;a1;1;0;1 
b;b1;1;0;0 

进入这个输出:然后

a;a1;1; 
a;a1;0; 
a;a1;1; 
b;b1;1; 
b;b1;0; 
b;b1;0; 

输出会被插入到数据库中的一个特定的表。 (我为这工作得很好的脚本。)

逻辑上应该是如何工作的:

从第3列数列数(在这种情况下,行尾必须有一个。描述从哪一列开始计数的var);行

计数...... 有一个foreach循环爆炸的数据,并把它作为一个数组

$i=0 
foreach($lines as $value) { 
$data[$i] = explode(";", $value); 
<...> 
$i++; 
} 

count($data);获得的行数

sizeof($data[0]); GET号

现在由于我缺乏的PHP知识,我还挺卡在这里。

回答

0

你需要做的是,对于每一行,array_splice前两个元素,然后遍历其余元素。

事情是这样的:

$data = array(); 
foreach($lines as $value) { 
    $value = explode(";", $value); 

    $first = array_splice($value, 0, 2); 

    foreach($value as $x){ 
     $row = $first; 
     $row[] = $x; 
     $data[] = implode(';', $row); 
    } 
} 

DEMO:http://codepad.org/cckbuu0Y

+0

这工作太棒了!谢谢! – 2013-05-07 14:41:19

+0

不客气! :-D – 2013-05-07 14:42:05