【发布时间】:2018-03-14 00:43:27
【问题描述】:
我有一个很大的列表,如何将 foreach 中的每个循环从文件“list.csv”中排除通过 foreach 的行?
$myGetCsv = function ($str) {
return str_getcsv($str, ';');
};
$lines = array_map($myGetCsv, file(''.get_template_directory_uri() . '/list.csv'));
foreach($lines as list($var1, $var2)) {
//CODE
}
示例:
原始文件:
test1, subtest1; // test1 is $var1 and subtest1 is $var2
test2, subtest2;
test3, subtest3;
第一个 foreach 之后的 list.csv
test2, subtest2;
test3, subtest3;
第二个foreach之后的list.csv
test3, subtest3;
第三个foreach之后的list.csv
empty
【问题讨论】:
-
即始终删除文件的第一行?
-
@felipsmartins 是的,永远是第一个
-
@felipsmartins 想得很好,它必须匹配刚刚在foreach中通过的行,该行永远不能在foreach中再次通过
-
列表有多大?根据大小,只需调用
file()函数,然后调用array_shift(),然后调用file_put_contents(join("\n", $lines))或类似的东西...... -
大约 5000 行