2015-05-28 17 views
5

Tôi đang tìm một hàm PHP có thể đọc một tập tin CSV và thực hiện một VLOOKUP trên cột 1 để echo giá trị liên quan trên cùng một dòng trong cột 2.PHP CSV VLookup

Ví dụ, nếu CSV chứa :

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

Tôi muốn tra cứu tên và lặp lại giá trị email.

Cái gì như:

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

bất cứ ai có thể đề nghị một chức năng mà có thể thực hiện ở trên?

Cảm ơn bạn

Trả lời

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 
} 

Xin lưu ý rằng các chỉ số được sử dụng trong câu trả lời này là cụ thể cho các định dạng csv bạn đã cho. Bạn sẽ phải điều chỉnh các chỉ mục nếu định dạng thay đổi.

+0

Cảm ơn bạn rất nhiều :) – 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

Hoàn hảo! Cảm ơn bạn rất nhiều :) – MrGoodBytes

+0

Niềm vui của tôi. :) –

Các vấn đề liên quan