2015-05-28 1 views
5

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

Например, если 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; 
?> 

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

Спасибо

ответ

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

+0

Спасибо вам большое :) – MrGoodBytes

2
<?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] 

?> 
+0

Совершенство! Большое вам спасибо :) – MrGoodBytes

+0

Мое удовольствие. :) –