我有一些 php 代码来获取 csv 文件,将其放入数组中,然后在 html 表中显示数组。此代码将用于具有多列(大约 10 列)的数据文件。我想将数据点四舍五入到小数点后 2 位,并且可以使用 $val = round($val, 2) 来实现。但是,当在我的代码中使用时,它还会更改时间列的格式,因此显示 12 而不是 12:00。如果有人知道如何更改数组中某些列的十进制格式,同时不考虑时间列,请让我知道。这是我现在拥有的代码:
$out = '';
echo "<th> Time </th><th> Temperature </th><th> Speed </th>";
$handle = fopen("fakedata.csv", "r");
$columns = array(1,3,5);
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$out = ("<tr>\r\n").$out;
foreach ($data as $index=>$val) {
if (in_array($index+1, $columns))
{
$val = round($val, 2);
$out = ("\t<td>$val</td>\r\n").$out;
}
}
echo("</tr>\r\n");
} //end while
echo $out;
echo "\n</table></body></html>";
(我知道 $out 的东西很奇怪,但它会翻转行顺序并首先显示最新数据)。无论如何,我的主要问题是更改 csv 数组某些行的十进制格式,在这种情况下,仅将 $column[3] 或第三列更改为 2 个小数位。谢谢您的帮助。