PHP tsv 配列

PHP

初めに

エンジニアとして業務をしていくと

色々なファイル名がありますよね。。

csvファイル、tsvファイルなど。。

今回はtsvファイルとなりますが

元々のtsvファイルをphpプログラムで

読み込んで配列形式で出力するという

ことをやっていこうと思います。

ちなみにtsvファイルとは

TSVとは、複数の項目で構成されるデータを複数件列挙して

表現することができる汎用的なデータ形式の一つで

項目間の区切り文字にタブ文字を用いるものです。

ではさっそくやっていきましょう!

実装

id  name    type    price
1001    egg food    200
1002    hook    dvd 999
1003    hammer  tool    300
1004    すし  食べ物   900

このようなデータをPHPで読み込み配列として

出力させるのがゴールです。

<?php
$data = [];
$fp = fopen('test.tsv', 'r');
if ($head = fgetcsv($fp, 1024, "\t")) {
while (($row = fgetcsv($fp, 1024, "\t")) !== false) {
$tmp = [];
foreach ($head as $key) $tmp[$key] = array_shift($row);
$data[] = $tmp;
}
}
fclose($fp);
print_r($data);

出力結果は以下となります。

Array
(
    [0] => Array
        (
            [id] => 1001
            [name] => egg
            [type] => food
            [price] => 200
        )

    [1] => Array
        (
            [id] => 1002
            [name] => hook
            [type] => dvd
            [price] => 999
        )

    [2] => Array
        (
            [id] => 1003
            [name] => hammer
            [type] => tool
            [price] => 300
        )

    [3] => Array
        (
            [id] => 1004
            [name] => すし
            [type] => 食べ物
            [price] => 900
        )

)

最後に

今回は小技といった感じでしたが

tsvファイルを取り扱うということは

少ないため記事にしました。

今後も技術記事を書いていきますので

応援よろしくお願いします!