PHP通过CSV文件搜索

时间:2012-03-20 12:20:26

标签: php csv

我有一个超过5 MB的CSV文件。作为这样的例子,

id,song,album,track
200,"Best of 10","Best of 10","No where"
230,"Best of 10","Best of 10","Love"
4340,"Best of 10","Best of 10","Al Road"

我有很多记录。我需要一次获得一条记录。假设我需要获取id 8999的详细信息。我的主要问题是,是否有任何方法可以从CSV中获取精确的数据记录,就像我们在mysql表中查询一样。

除此之外,我在脑海中有以下解决方案来执行任务。什么是最好的方式。

  1. 读取CSV并加载到阵列。然后搜索它并获取数据。 (我必须得到所有记录。顺序不同,这就是我面对这个问题的原因。其他明智的我可以通过记录获得记录。)
  2. 将CSV导出到MYSQL数据库,然后从该表中查询
  3. 一直阅读CSV而不将其加载到阵列
  4. 如果我能快速搜索CSV文件,那就太棒了。感谢您的建议。

    谢谢。

2 个答案:

答案 0 :(得分:1)

我不知道是否有任何库允许您直接查询CSV文件。如果有,那将是你最好的选择。如果没有,这是另一种解决方案。

如果你想获得id 8999的详细信息,加载整个文件的内存效率非常低。

你可以做这样的事情

使用逗号上的fgetsexplode读取一行,然后检查第0个元素。如果它不是您想要的ID,请丢弃并重复。

答案 1 :(得分:0)

不熟悉PHP,但如果此查询频繁,请考虑将数据保留在内存中,并使用映射数据结构通过id对其进行索引。 (也应该是PHP中的数组)