将数组修改为列表

时间:2013-05-07 14:23:37

标签: php arrays

我需要帮助转换此.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列到第1行。必须有一个描述从哪个列开始计算的var);

计算行数... 有一个foreach循环来爆炸数据并将其设置为数组

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

count($data);获取行数

sizeof($data[0]);获取列数

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

1 个答案:

答案 0 :(得分: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