PHP CSV VLookup

5
我希望您能够提供一个能够读取CSV文件并在第一列上执行vlookup以输出同一行中第二列相关值的PHP函数。
例如,如果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;
?>

有人能建议一个可以实现上述功能的函数吗?

谢谢

2个回答

4
$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

?>

完美!非常感谢 :) - MrGoodBytes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接