Я хочу перебрать файл CSV и проверить, есть ли в строке позиции [1] определенные страны. Если да, то время круга следует пропустить до следующего ряда.
Но на данный момент это не удается из-за моего условия if:
$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) ...
}
Чтобы продолжить кодирование, я проверял, верно ли мое утверждение и получаю ли я желаемые значения. Но я не.
Я хочу только получить значения, где страна не входит в число стран в массиве и если заголовок в row[1]
содержит слово card
, Но если я использую это условие, я не получаю значений.
Но что не так?
Это образец CSV:
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;
, Но я не…
Кто-нибудь знает почему и если да, как я могу это исправить?
И мой второй вопрос:
Если одно значение products_edition
соответствует одной стране из моего массива, фактический круг должен быть пропущен, потому что я не хочу обрабатывать продукт, если он из этих стран. Но как я могу сказать, что это актуально в то время как круг?
Я не хочу, чтобы остановить отверстие во время цикла, только в то время как круг, где row[1]
соответствует одной из стран в моем массиве стран.
У кого-нибудь есть идея?
Приветствую и спасибо!
РЕДАКТИРОВАТЬ:
Теперь я знаю, как пропустить реальный круг и сказать, чтобы цикл продолжился на следующем круге. Я просто использую continue;
, Но есть еще моя другая, если условие проблемы …: /
$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) ...
}
Других решений пока нет …