2017-02-23 5 views
0

CSVファイルを繰り返し処理し、ロー[1]の位置が特定の国であるかどうかを確認します。 「はい」の場合は、次の行にスキップする必要があります。CSVファイルを繰り返し、ラップ中にスキップしますか?

しかし条件ならば、現時点ではそれは私のために失敗している:私は所望の値を取得する場合、私の文は正しいですし、場合

$countries = array("Österreich", "Schweiz", "Niederlande", "Großbritannien", "United States"); 

while (($row = fgetcsv($inputFile, 0, $delimiter)) !== false) { 
     foreach ($countries as $country){ 
      if(((stripos($row[1], $country === false))) && stripos($row[0], "Card")){ 
       echo $row[0] . "\t => \t" . $row[1] . "\n"; 
      } 
     } 
... some other code (Dealing with the values) ...  
} 

は私がチェックしていたコーディングを続行するには。しかし、私はしません。

国が配列内の国の1つではなく、row[1]のタイトルに単語cardが含まれている場合にのみ、値を取得します。しかし、もし私がこの条件を使うなら、私は値を得ません。 何が間違っていますか?

products_name;products_edition 
"PlayStation Network Card 20€";"Deutschland "; 
"PlayStation Network Card 50€";Österreich; 
"Playstation Plus Live Card - 365 Tage";Deutschland; 
"PlayStation Network Card 10£ ";Großbritannien; 
"PlayStation Network Card 20$";"United States"; 

私は"PlayStation Network Card 20€";"Deutschland ";"Playstation Plus Live Card - 365 Tage";Deutschland;を取得する必要がありますので、実際:

これは、CSV形式のサンプルです。しかし、私はそうではありません...

なぜ誰かがそれを知っていますか?

products_editionの値が1つの国の配列と一致している場合、実際のラップタイムはスキップされるはずです。なぜなら、それらの国からの製品では処理したくないからです。しかし、実際にラップしている間、それをどのように伝えることができますか?

ループ中に穴を止めたくない場合は、row[1]が私の国の配列の国の1つに一致するwhileラップだけです。

誰かがアイデアを持っていますか? ご挨拶とありがとうございます!

EDIT: 私は、実際のループラップをスキップして、次のラップを続行するループを伝える方法を今知っています。私はちょうどcontinue;を使用します。しかし、私の他のif条件問題はまだあります.../

答えて

1
$countries = array("Österreich", "Schweiz", "Niederlande", "Großbritannien", "United States"); 
while (($row = fgetcsv($inputFile, 0, $delimiter)) !== false) { 
    if (in_array($row[1], $countries) && strpos($row['1'], "Card") !== false) { 
     continue; 
    } 
    echo $row[0] . "\t => \t" . $row[1] . "\n"; 
//... some other code (Dealing with the values) ...  
} 
+0

ありがとうございました! – Jan

関連する問題