묻고답하기

fgetcsv함수를 공부하던 중에 이상점이 발견되어 질문을 드려요.
fgetcsv함수가 만들어낸 배열을 each함수와 foreach구문의 인자로 사용하니까 에러가 발생하던데요.
원래 fgetcvs함수에서 만들어낸 배열은 each함수와 foreach구문의 인자로 사용할 수 없는건가요??
에러 내용은...

fgetcsv함수에서 만들어낸 배열을 foreach구문에 넣었을 때 나오는 에러...
Warning: Invalid argument supplied for foreach()

fgetcsv함수에서 만들어낸 배열을 each함수에 넣었을 때 나오는 에러...
Warning: Variable passed to each() is not an array or object

그리고 더욱 이상한 점은 동일한 내용을 메모장에 입력한 후에 각 문자열을 콤마(,)로 구분하여 txt 로 저장
한 파일을 fgetcsv함수를 이용하여 배열로 만들어 each함수와 foreach구문의 인자로 사용할 때는 에러가
발생하지 않는다는 겁니다.... 도데체 이유가 뭔지?? ㅡㅡ;;

제가 테스트한 소스는 다음과 같습니다.

--test.csv 파일내용-------------
동해물,백두산,마르고,닳도록
하느님,보우하사,우리나라,만세
무궁화,삼천리,화려강산,대한사람
-------------------------------

<each함수를 이용한 소스>
$fp=fopen("./test.csv","r+");
while(!feof($fp)){
        $arr=fgetcsv($fp,10000,",");
        while(list($key,$value)=each($arr)){
                echo $value." ";
        }
        echo "<br>";
}
fclose($fp);

<foreach함수를 이용한 소스>
$fp=fopen("./test.csv","r+");
while(!feof($fp)){
        $arr=fgetcsv($fp,10000,",");
        foreach($arr as $value){
                echo $value." ";
        }
        echo "<br>";
}
fclose($fp);