【问题标题】:Taking value from one csv file and checking if it exists in another csv file从一个 csv 文件中获取值并检查它是否存在于另一个 csv 文件中
【发布时间】:2016-04-12 17:04:33
【问题描述】:

我有一个 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 循环中,它不会似乎什么都做。

【问题讨论】:

  • 第6个逗号.. PHP中有csv函数,使用吧。
  • 我不会在这里问我是否可以用我找到的东西来解决它。
  • @outbeyond 他的问题是你没有遇到任何错误,以及你试图找到解决方案的任何尝试。发帖前请阅读help page
  • @Arescet 我已经更新了我的帖子,这是我的尝试。

标签: php csv preg-match


【解决方案1】:
for id in $(cut  -f2 -d',' file1); do cat file2 | grep $id | cut -f7 -d','; done

然后跳,你就完成了;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多