【发布时间】:2017-04-29 17:33:36
【问题描述】:
我有一个 CSV 文件,其中存储了第一列中的图像 ID,以及所述图像的 url 及其标签文本(电子表格在其他地方转换为图片库)。有多个名为 1.csv、2.csv、3.csv 等的 CSV - 出于循环目的,我可以简单地抓取连接到“.csv”的循环计数器来抓取文件 - 因为总会有一个固定的顺序CSV 的数量,但并不总是固定的数量。
当用户使用我的控制面板编辑 CSV 时,他们可以更改图像的 ID,当他们添加新图像时,他们也可以指定其 ID。
这是 CSV 的示例
1,images/url/photograph.jpg,label text
2,images/url/image2.jpg,label text
4,images/url/apple.jpg,label text
3,images/url/foo.jpg,label text
5,images/url/5.jpg,label text
每个 CSV 在下面的 while 循环中进行转换,它本身存在于一个循环中,一个一个地遍历每个文件
$htmlMenu .= "<tr> <th> Name/ID </th> <th> URL </th> <th> Text </th> </tr>";
$file_handle = fopen($fullCSVUrl, "r");
while (!feof($file_handle) ) {
$line_of_text = fgetcsv($file_handle, 1024);
$htmlMenu .= "<tr> <td> $line_of_text[0] </td> <td> <a href=\"$line_of_text[1]\"> $line_of_text[1] </a> </td> <td> $line_of_text[2] </td>";
}
$htmlMenu .= "</table>";
最后,$htmlMenu 被回显,它生成一个页面,其中每个 CSV 作为单独的 HTML 表格一一对应。我相信这意味着 $line_of_text[0] 是从文件中获取的 ID。
如果可能,我希望在此循环中按第一列对数据进行排序,然后将其发送回 CSV,从而在每次访问此页面时有效地按 ID 对文件进行排序。我不介意对 CSV 本身进行排序或对数组进行排序并将其推回文件中,替换旧数据。
我希望我已经有效地解释了,我知道我想做什么以及在哪里,我只是无法弄清楚。谢谢您的帮助。
PS:我知道排序后的表格需要刷新才能显示,这很好,因为它是供我个人使用的。
【问题讨论】:
标签: php database sorting csv plugins