我有一个大型CSV文件。第一列包含处理器的名称。第二,处理器的基准分数。 EG:
Intel Pentium Dual T3400 @ 2.16GHz,1322
使用PHP脚本,我想在第一列搜索一个字符串(EG。奔腾双T3400),并且(假设每次搜索只有一个结果,否则返回错误信息)创建一个包含该字符串的变量第二列的值。
我不知道这是否会有所帮助,但我有点希望看起来有点像这样:
$cpuscore = csvsearch(CSV_file,query_string,column#_to_search,column#_to_return)
其中$ cpuscore将包含与搜索查询匹配的处理器名称的分数。
随意提出可产生类似结果的内容。我有MySQL,但我没有从CSV导入表的权限。
答案 0 :(得分:1)
您可以使用php函数fgetcsv(),http://php.net/manual/en/function.fgetcsv.php逐行遍历csv文件。例如:
$ch = fopen($path_to_file, "r");
$found = '';
/* If your csv file's first row contains Column Description you can use this to remove the first row in the while */
$header_row = fgetcsv($ch);
/* This will loop through all the rows until it reaches the end */
while(($row = fgetcsv($ch)) !== FALSE) {
/* $row is an array of columns from that row starting at 0 */
$first_column = $row[0];
/* Here you can do your search */
/* If found $found = $row[1]; */
/* Now $found will contain the 2nd column value (if found) */
}
答案 1 :(得分:0)
我喜欢遍历csv文件的每一行并找到我正在寻找的单词,并从那里编译结果。这是让你入门的东西:
<?
$file=file('yourfilepath');
$list=array();
foreach($file as $value){
if(stristr($value,'Intel Pentium Dual')){create your $cpuscore here}
}
print_r($result);
?>