2 回答
TA贡献1806条经验 获得超8个赞
您的 CSV 文件可能使用 UTF-8 编码,带有BOM(字节顺序标记)。
PHP 在读取文件时确实(仍然)不能正确处理 BOM,因此您从文件中读取的第一行仍然会在开始时包含它,因此第一列值也仍然会包含它。因此,您在$csv
数组中的键实际上不是Date
,而是[BOM]Date
,但是您在 print_r 输出中看不到它(BOM 本身实际上并不“可见”。)
有关如何删除 BOM 的建议,请参阅如何删除多个 UTF-8 BOM 序列或https://gist.github.com/chrisguitarguy/6096271。
TA贡献1829条经验 获得超13个赞
您需要获取每个字段的交易。这里:https ://www.php.net/manual/en/function.fgetcsv.php
我正在使用完全相同的 CSV 文件并为面试制定了解决方案。可以在以下链接上测试 CSV 文件: https ://paduademo.azurewebsites.net/
<?php foreach ($transactions as $transaction) : ?>
<tr>
<td><?php echo $transaction['Date']; ?></td>
<td><?php echo $transaction['TransactionNumber']; ?></td>
<td><?php echo ($transaction['Valid'])? 'Yes': 'No'; ?></td>
<td><?php echo $transaction['CustomerNumber']; ?></td>
<td><?php echo $transaction['Reference']; ?></td>
<td><span class="<?php echo ($transaction['type'] == 'Credit')? 'text-danger': 'text-success'; ?>"><?php echo (($transaction['type'] == 'Credit')? '-': '') . '$' . $transaction['Amount']; ?></span></td>
</tr>
<?php endforeach; ?>
截图如下:
- 2 回答
- 0 关注
- 83 浏览
添加回答
举报