我有一大堆来自足球队的数据需要整理。目前,它看起来像这样(出于演示目的,我只包括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
每一行都以团队的位置开始,然后是团队名称,然后是每个统计数据 - 用逗号分隔。
我试图用很少的运气做这件事。我想某些花哨的正则表达式可以做到这一点,但我不知道如何...希望有人可以提供帮助!
答案 0 :(得分: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
答案 1 :(得分:0)
<?php
$resultstr = array();
foreach($Teams as $items){
$resultstr[] = $items['Team One'];
}
$items = implode(", ",$resultstr);
echo $items;
?>
这样的事情。您可以使用自己的数据对其进行编辑,因为您在问题中没有提及。