首页 > 解决方案 > php逐行拆分文本并获取特定元素

问题描述

我有一个大文本文件,由新行分割,每一行元素都由';'分割,如下所示:

1;1;20;3.6;0%;70%;25%;0%;5%;
1;2;80;4;45%;20%;20%;15%;0%;
1;3;80;4;40%;35%;5%;20%;0%;
1;4;20;3.6;15%;40%;38%;5%;2%;
1;5;20;3.6;30%;18%;33%;20%;0%;
1;6;80;4;27%;47%;23%;3%;0%;

我想做的是用 PHP 正确读取文件并访问任何行中的特定元素,例如在第 2 行、第 3 行(如果将其视为索引,则可能是 [1][2])并打印它.

<?php
//split by new line
$text = fopen("public/data/data1.txt", "r");

if ($text) {
    while (($lines = fgets($text)) !== false) {
     //split by ;   
        $line = explode(';', $lines);

        //access a specific element 
    }

    fclose($text);
} else {
    // error opening the file.
}
?>

有人知道我如何访问这些元素吗?

标签: php

解决方案


您可以将字符串炸开两次。
先在线路上,然后在;.

$arr = explode(PHP_EOL, $str);
Foreach($arr as &$line){
    $line = explode(";", $line);
}

https://3v4l.org/5fbvZ

然后echo $arr[1][2];将按您的意愿工作


推荐阅读