2015-05-28 9 views
5

Sto cercando una funzione PHP che può leggere un file CSV ed eseguire un vlookup su colonna 1 per riprendere il valore relativo sulla stessa riga della colonna 2.PHP CSV VLookup

Ad esempio, se il CSV contiene :

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

Vorrei cercare un nome e fare eco al valore dell'email.

Qualcosa di simile:

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

Qualcuno può suggerire una funzione che può realizzare quanto sopra?

Grazie

risposta

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 
} 

Si prega di notare che gli indici utilizzati in questa risposta sono specifiche per il formato csv hai dato. Dovrai regolare gli indici se il formato cambia.

+0

Grazie mille :) – 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

La perfezione! Grazie mille :) – MrGoodBytes

+0

Il mio piacere. :) –

Problemi correlati