2011-05-03 7 views
3

설명, 주식, mfgid (및 필자가 필요로하지 않는 다른 헤더) 열 머리글이 포함 된 csv가 있습니다.배열에 csv 열 넣기

배열의 열 머리글 및 mfgid에서 데이터를 가져와야합니다.

나는 fgetcsv()를 사용하고 있었지만 배열의 배타적 키에 전체 행을 넣었습니다.

에 유래에서 여기를 발견하지만 잘 동작하지 않습니다 :

$file = fopen('inventory.csv', 'r'); 
while (($line = fgetcsv($file)) !== FALSE) { 
    //$line is an array of the csv elements 
    print_r($line); 
} 
fclose($file); 
+1

정확한 문제는 무엇입니까? 보이는 무엇입니까? 무슨 일 이니? – mauris

답변

2

완성 된 CSV 파일 사용이 구조 읽기 :

$csv = array_map("str_getcsv", file("inventory.csv")); 
$header = array_shift($csv); 

을이은으로 $header를 분리 $csv 데이터의 나머지 부분과 별도의 배열

당신이 다음 (? 겉으로는) 두 필드의지도를 원하는 경우

는 시도 :

$col1 = array_search("stock" $headers); 
$col2 = array_search("mfgid", $headers); 
foreach ($csv as $row) { 
    $map[ $row[$col1] ] = $row[$col2]; } 

이 당신에게 stock 줄 것 ->mfgid 배열을.

+0

좋아 보여 줄께 다시 신고 해. 감사합니다 – Joe

+0

글쎄 그것은 다른 사람들을 위해 일할 수도 있지만 내 서버는 PHP 5.3을 사용하지 않으므로 "str_getcsv"를 사용할 수 없도록 제한한다고 생각합니다. – Joe

+0

아 좋아요. http://www.php.net/manual/en/function.str-getcsv.php#98088에서 에뮬레이션 중 하나를 시도하거나 http://upgradephp.berlios.de/를 사용하여이 PHP5.3 기능을 사용할 수 있습니다 . 그러나 이전 루프 방법을 사용하고 열을 분리하기 위해 두 번째 코드 블록을 적용하면됩니다. – mario

관련 문제