遍历 CSV 文件并跳过一圈?
Iterate over a CSV file and skip while lap?
我想遍历 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
的值。但是,如果我使用这个 if 条件,我将得不到任何值。
但是有什么问题呢?
这是一个 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]
匹配我的国家数组中的一个国家的 while 圈。
有人有想法吗?
问候并感谢您!
编辑:
我现在知道如何跳过实际的循环圈并告诉循环继续下一圈。我只是使用 continue;
。但是还有我的其他 if 条件问题... :/
$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) ...
}
我想遍历 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
的值。但是,如果我使用这个 if 条件,我将得不到任何值。
但是有什么问题呢?
这是一个 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]
匹配我的国家数组中的一个国家的 while 圈。
有人有想法吗? 问候并感谢您!
编辑:
我现在知道如何跳过实际的循环圈并告诉循环继续下一圈。我只是使用 continue;
。但是还有我的其他 if 条件问题... :/
$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) ...
}