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]);获取列数

现在由于我缺乏 php 知识,我有点卡在这里。

4

1 回答 1

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);
    }
}

演示:http ://codepad.org/cckbuu0Y

于 2013-05-07T14:29:04.997 回答