提问人:Jan 提问时间:2/24/2017 最后编辑:Jan 更新时间:2/24/2017 访问量:35
遍历 CSV 文件并在 lap 时跳过?
Iterate over a CSV file and skip while lap?
问:
我想遍历一个 CSV 文件并检查位置行 [1] 上是否有某些国家/地区。如果是,则应将 while 圈跳到下一行。
但目前由于我的 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) ...
}
为了继续编码,我正在检查我的陈述是否正确以及是否获得了所需的值。但我没有。
我只想获取国家/地区不是数组中的国家/地区之一的值,并且标题是否包含单词 .但是如果我使用这个 if 条件,我没有得到任何值。
但有什么问题呢?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;
有谁知道为什么,如果是,我该如何解决这个问题?
我的第二个问题是:
如果一个值与我的数组中的一个国家/地区匹配,则应跳过实际的 while lap,因为如果产品来自这些国家/地区,我不想处理该产品。但是我怎么知道实际的圈数呢?products_edition
我不想停止 while 循环的孔,只有 while lap 与我的国家/地区数组中的一个国家/地区匹配。row[1]
有人有想法吗? 问候和谢谢!
编辑:我现在知道如何跳过实际的循环圈,并告诉循环继续下一圈。我只是用.但是还有我的其他条件问题...... :/continue;
答:
1赞
beta-developper
2/24/2017
#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) ...
}
评论