我有一个包含多行数据的文件。我想将每33行数据分组成一个数组,然后将数据分组成一个数组,我想将数据冒号分隔成子数组,如下所示:
<?
print_r(explode(':', $line));
?>
如何准备文件中的每33行数据,以准备好成为上面代码段中的$ line变量?
答案 0 :(得分:2)
我不确定这是否适合您的目标,但请查看array_chunk
。对于您的场景,假设您的数据来自文件(如果没有,您可以爆炸将线分割成数组):
$line_array = file($location_of_data_file);
$line_array_by_33 = array_chunk($line_array, 33);
这将为您提供如下数组:
[0] =>
[0] => "Line 1",
[1] => "Line 2",
[2] => "Line 3",
[3] => "Line 4",
[1] =>
[0] => "Line 5",
[1] => "Line 6",
[2] => "Line 7",
[3] => "Line 8",
上面是一个较短的版本,但你明白了。
如果你需要添加分隔符,你可以随时内爆每个块,添加你的令牌,然后再重新爆炸。
答案 1 :(得分:0)
根据IBM article,尝试类似:
$counter = 1;
$group_of_lines = '';
$file_handle = fopen("myfile", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
$group_of_lines .= $line;
if($counter % 33 == 0) {
// do stuff with your $group_of_lines
}
$counter++;
}
fclose($file_handle);