test_tab.txt
(タブ区切り)というファイルに次のものがあります。
header1 header2 header3
field1 field1a field1b; field1c
field2 field2a field2b
field3 field3a
field4 field4a field4b; field4c; field4d; field4e
field5 field5a
field6 field6a field6b; field6c
それを次のように変換したいと思います(これもタブで区切られ、別のテキストファイルに書き込まれます):
header1 header2 header3
field1 field1a field1b
field1 field1a field1c
field2 field2a field2b
field3 field3a
field4 field4a field4b
field4 field4a field4c
field4 field4a field4d
field4 field4a field4e
field5 field5a
field6 field6a field6c
field6 field6a field6c
私は一般的にプログラミングに慣れていませんが、グーグルで調べてみましたが、これを行うには、配列を作成し、何らかの方法で header3 キーと値のペアを分解することが考えられます。ただし、header1 と header2 の下のフィールドをコピーする方法がわかりません。
現時点で持っているのは、配列を作成するためのコードだけです。
$mainarray = array();
foreach (file('test_tab.txt') as $row) {
list($header1, $header2, $header3) = explode("\t", $row);
$mainarray[] = array(header1 => $header1, header2 => $header2, header3 => $header3);
}
print_r($mainarray);
与える:
Array
(
[0] => Array
(
[header1] => header1
[header2] => header2
[header3] => header3
)
[1] => Array
(
[header1] => field1
[header2] => field1a
[header3] => field1b; field1c
)
[2] => Array
(
[header1] => field2
[header2] => field2a
[header3] => field2b
)
[3] => Array
(
[header1] => field3
[header2] => field3a
[header3] =>
)
[4] => Array
(
[header1] => field4
[header2] => field4a
[header3] => field4b; field4c; field4d; field4e
)
[5] => Array
(
[header1] => field5
[header2] => field5a
[header3] =>
)
[6] => Array
(
[header1] => field6
[header2] => field6a
[header3] => field6b; field6c
)
)
これにアプローチする方法についてのアイデアはありますか? PHP バージョン 5.3.10 を使用しています。