【问题标题】:PHP CSV VLookupPHP CSV VLookup
【发布时间】:2015-08-10 12:01:49
【问题描述】:

我正在寻找一个 PHP 函数,它可以读取 CSV 文件并在第 1 列上执行 vlookup 以在第 2 列的同一行中回显相关值。

例如,如果 CSV 包含:

Name,Email
John,john@domain1.com
Frank,frank@domain2.com
Julie,julie@domain3.com

我想查找名称并回显电子邮件值。

类似:

<?php
$name = "Name to be inserted";
$csv = 'filename.csv';

*function to vlookup $name in $csv, get column 2 value and pipe to $email* 

echo $email;
?>

谁能推荐一个可以实现上述功能的功能?

谢谢

【问题讨论】:

    标签: php arrays csv search vlookup


    【解决方案1】:
    $csv = array_map('str_getcsv', file('test.csv'));
    $findName="Frank";
    foreach($csv as $values)
    {
      if($values[0]==$findName)   // index 0 contains the name
        echo $values[1];          // index 1 contains the email  
    }
    

    请注意,此答案中使用的索引特定于您提供的 csv 格式。如果格式发生变化,您将不得不调整索引。

    【讨论】:

      【解决方案2】:
      <?php
      
      //Name,Email
      //John,john@domain1.com
      //Frank,frank@domain2.com
      //Julie,julie@domain3.com
      
      // Function Definition
      function getEmailFromCSV($csv_name, $name) {
      $file = fopen($csv_name, "r");
      
      while (!feof($file)) {
          $arr = fgetcsv($file);
          if ($arr[0] == $name) {
              echo $arr[1];
          }
      }
      fclose($file);
      }
      
      // Function Calling
      getEmailFromCSV('abc.csv', 'John');
      
      // Input : John
      // Output : john@domain1.com
      
      ?>
      

      【讨论】:

      • 完美!非常感谢:)
      猜你喜欢
      • 1970-01-01
      • 2010-11-12
      • 2017-02-03
      • 1970-01-01
      • 2012-05-28
      • 2016-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多