1

片付けが必要なフットボール チームのデータがたくさんあります。現在、次のようになっています (デモンストレーションのために、3 つだけを含めました)。

1   
Team One
9   7   1   1   31  13  18  22
2   
Team Two
9   6   2   1   25  21  4   19
3   
Team Three
9   4   3   2   26  18  8   14

わかりやすくするために、最初の 3 行を分解します。

1\t\n
Team One\n
9\t7\t1\t1\t31\t13\t18\t22

各チームの位置の後にタブと改行があることに注目してください。次に、改行だけで、次の行にチーム名が表示されます。そして最後に、そのチームに関するすべての詳細。次に、次のチームの統計が開始されます。

次のように変換する必要があります。

1,Team One,9,7,1,1,31,13,18,22
2,Team Two,9,6,2,1,25,21,4,19
3,Team Three,9,4,3,2,26,18,8,14

各行は、チームの位置、チーム名、各統計で始まります。すべてコンマで区切られています。

私はこれをやろうとしましたが、運がほとんどありませんでした。ある種の派手な正規表現でうまくいくと思いますが、その方法はわかりません...誰かが助けてくれることを願っています!

4

2 に答える 2

1

使用できます

$in = file("log.txt");
$out = fopen("php://output", "w");

foreach(array_chunk($in, 3) as $group) {
    $group = array_map("trim", $group);
    $group[2] = implode(",", str_getcsv($group[2], "\t"));
    fputcsv($out, $group);
}

出力

1,"Team One","9,7,1,1,31,13,18,22"
2,"Team Two","9,6,2,1,25,21,4,19"
3,"Team Three","9,4,3,2,26,18,8,14"

空のエンクロージャーが必要な場合は、使用します

fputcsv($out, $group, ",", " ");

出力

1, Team  One , 9,7,1,1,31,13,18,22 
2, Team  Two , 9,6,2,1,25,21,4,19 
3, Team  Three , 9,4,3,2,26,18,8,14 
于 2013-06-13T10:40:18.677 に答える
0
<?php
    $resultstr = array();
        foreach($Teams as $items){
        $resultstr[] = $items['Team One'];
    }
    $items = implode(", ",$resultstr);
    echo $items;
?>

そんな感じ。質問で言及していないため、独自のデータで編集できます。

于 2013-06-13T10:35:31.850 に答える