массивы — PHP CSV VLookup

Я ищу функцию PHP, которая может читать файл CSV и выполнять vlookup в столбце 1, чтобы отобразить соответствующее значение в той же строке в столбце 2.

Например, если CSV содержит:

Name,Email
John,[email protected]
Frank,[email protected]
Julie,[email protected]

Я хотел бы найти имя и повторить значение электронной почты.

Что-то вроде:

<?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;
?>

Кто-нибудь может предложить функцию, которая может выполнить вышеупомянутое?

Спасибо

5

Решение

$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. Вам придется настроить индексы, если формат меняется.

4

Другие решения

<?php

//Name,Email
//John,[email protected]
//Frank,[email protected]
//Julie,[email protected]

// 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 : [email protected]

?>
2

По вопросам рекламы [email protected]