从一个csv文件中获取值并检查它是否存在于另一个csv文件中

时间:2016-04-12 17:04:33

标签: php csv preg-match

我有一个看起来像这样的csv文件

Stanza 07,41912087207 Stanza 08,41912087208 Stanza 09,41912087209

和另一个看起来像这样的

0101*200,0789240959,centralino,101,2016-03-03 14:02:35,281,1.47,,4178,"La Perla" <41917913577>
0101*200,0789240959,centralino,101,2016-03-03 14:02:35,281,500.12,,4178,"La Perla" <41912087207>
0101*200,0917911974,centralino,101,2016-03-03 14:52:16,0,0,,41,"La Perla" <41917913577>

所以我想从第一个文件中获取ID值,检查它是否存在于第二个csv文件中,如果存在,则在第六个逗号之后打印出值,在上面的行中,因为它有500.12,因为有一个ID出现在两个CSV文件41912087207上。

这是我的代码

<?PHP
$search= "41912087207"; 
$linescdr       = file('cdr.txt');
$linesstanze = file('stanze.txt');

while (list($key, $line1) = each($linesstanze)) {

   $arrr = explode(",", $line1);

      while (list($key, $line) = each($linescdr)) {
   if(strpos($line, $arrr[1])){
   $arr = explode(",", $line);
   echo $arr[6];
   echo "<br>";
}
}

}
?>

在这行代码中

if(strpos($line, $arrr[1])){

如果我把$ search在文件的开头声明,它可以工作,但如果我把$ arrr [1]从stanze.txt中的ID逐个放入while循环中,它就不会好像什么都做。

1 个答案:

答案 0 :(得分:0)

for id in $(cut  -f2 -d',' file1); do cat file2 | grep $id | cut -f7 -d','; done

然后跳,你已经完成了;