迭代CSV文件并跳过一圈?
问题描述:
我想迭代一个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) ...
}
要继续编码我检查,如果我的说法是对的,如果我得到所需的值。但我不。
我只想获得国家不是数组中的国家之一的值,如果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
一个值与一个国家从我的阵列,实际而圈应该得到跳过,因为我不想处理的产品,如果它是来自这些国家的匹配。但是,我怎么能说出这一段时间呢?
我不想停止这个洞while while循环,只有一圈,其中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) ...
}
非常感谢! – Jan