2016-09-30 4 views
0

Ich schrieb ein einfaches Skript, das eine CSV-Datei lädt, aber das fgetcsv, aber ein Array zurückgibt, so kann ich foreach Schleife nicht verwenden, um etwas wie Suchen zu tun.fgetcsv gibt kein Array zurück

$f_pointer=fopen("table.csv","r"); // file pointer 

while(!feof($f_pointer)) { 


    $ar=fgetcsv($f_pointer); 

    foreach ($ar as $str1) { 

     //Warning:Invalid argument supplied for foreach() 
    } 


} 

wenn der foreach-Sicht ist es ein Fehler, aber sehr seltsam, wenn ich print_r ($ ar) verwenden, wird die csv als ein Array eine Zeile

Wer weiß, drucken, was das Problem ist, ?

table.csv (in UTF-8-Format)

時裝,上衣,襯衫,Shirt,Top * 10 row 

vollständige Code

<html> 
<head> 
<meta charset="UTF-8"> 
</head> 
<?php 

$search = array('時裝','女裝','上衣'); 

$cat1 = ""; 
$cat2 = ""; 


$f_pointer=fopen("table.csv","r"); // file pointer 

while(! feof($f_pointer)) { 


    $ar=fgetcsv($f_pointer); 
    //echo print_r($ar); // print the array 
    $i = 0; 

    //echo count($ar); 
    if (is_array($ar)) { 
     foreach ($ar as $str1) { 
      echo trim($str1); 
      // will print full str 時裝上衣襯衫ShirtTop 
      /*if (trim($str[$i]) == $search[$i]) { 
       if ($i == 1) 
        $cat1 = $str[3]; 

       if ($i == 2) 
        $cat2 = $str[4]; 
      } 

      $i++; 
      if ($i == 3) break;*/ 
      //echo $str; 

     } 
    } 


    echo "<br>"; 

} 

echo 'cat1='.$cat1.'<br>'; 
echo 'cat2='.$cat2.'<br>'; 


?> 
</html> 
+0

Können Sie pri nt_r (fgetcsv ($ f_pointer)) zuerst und zeigen Sie die Ausgabe? –

+0

Array ([0] => 時裝 [1] => 上衣 [2] => 襯衫 [3] => Shirt [4] => Top) 1 – hkguile

+0

Hat meinen obigen Kommentar bearbeitet. –

Antwort

0

Array fgetcsv (resource $ handle [, int $ length = 0 [, string $ delimiter = "" [, string $ enclosure = '"' [, string $ escape = "\"]]]])

Was ist Ihr Trennzeichen? und Gehäuse?

+0

Was meinst du ?! –

+0

zeigen rohe Daten Ihrer Tabelle.csv –

+0

die Frage wurde aktualisiert und es ist auch nicht mein! Ihre Antwort ist auch eine Frage, keine Antwort. siehe [Answer] –