Я ищу функцию PHP, которая может читать CSV-файл и выполнять vlookup в столбце 1, чтобы отразить связанное значение в той же строке в столбце 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; ?>
Может ли кто-нибудь предложить функцию, которая может выполнить вышеизложенное?
спасибо
$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, который вы указали. При изменении формата вам придется корректировать индексы.
<?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 ?>