【发布时间】:2014-08-14 23:00:07
【问题描述】:
我正在使用 PHP 打开并解析一个非常小的(大约 1kb)CSV 文件以生成一个 HTML 表格。我是 PHP 新手,这在很大程度上是实验性的。除了生成 HTML 表之外,我正在尝试从该 csv 中的一组特定列(城市和国家信息)生成一个数组,然后删除重复值。 CSV 的结构如下:
Last Name, First Name, City, Country, Language
Smith, Joe, Shanghai, China, English
Jackson, Stacey, Madrid, Spain, Spanish
Jones, Bob, London, United Kingdom, English
Seward, Elisa, Madrid, Spain, English
Harrison, Tim, Berlin, Germany, German
这里的想法是,除了包含所有数据的表格之外,我还将列出表格中列出的所有城市/国家:
- 中国上海
- 西班牙马德里
- 英国伦敦
- 德国柏林
感谢 fgetcsv() 文档和 Stack Overflow 上的其他问题,阅读文件和构建表格非常简单:
<?php
$handle = fopen("namelist.csv", "r");
$data = fgetcsv($handle, 1000, ",");
echo('<table>');
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
echo("<tr>\r\n");
foreach ($data as $index=>$val) {
echo("\t<td>");
echo htmlentities($val, ENT_QUOTES);
echo("</td>\r\n");
}
echo("</tr>\r\n");
}
echo("</table>");
fclose($handle);
?>
但我一直无法弄清楚如何获取城市、国家/地区数据并删除重复项。有人有建议吗?
【问题讨论】:
-
我希望
$index == 2拥有城市,$index == 3拥有国家。要删除重复项,您需要参考数据数组或将信息存储在对用户更友好的数组中,以跟踪写入的内容。