读取文件并创建具有第一行作为标题(键)的数组

月球漫步者

我可以读取文件并将其放入数组。

file.txt:

 time          value1         value2    

    .00          .0000        21.2310         
 100.92       200.2272         7.7243         
 200.92       222.4021         8.6395 

我当前的代码:

$array = file('file.txt');
$new_array = array();

foreach ($array as $line) {
    $string = preg_replace('/\s+/',';', $line);    
    $line_array = explode("\t", $string);
    $new_array[] = $line_array[0];
}

我的输出:

    array
  'time' => 
    array
      0 => string '.00' 
      1 => string '267.1081'  
      2 => string '267.1043'  
  'value1' => 
    array
      0 => string '100.92'  
      1 => string ' 200.2272' 
      2 => string '7.7243'  
  'value2' => 
    array
      0 => string '200.92'  
      1 => string '222.4021'  
      2 => string '8.6395'  

但是我的愿望是:

    $my_array = Array
(
    [0] => Array
        (
            [time] =>  .00 
            [value1] => .0000 
            [value2] => 21.2310  
        )

    [1] => Array
        (
            [time] =>  100.92 
            [value1] => 200.2272  
            [value2] => 7.7243   
        )

     [2] => Array
        (
            [time] =>   200.92 
            [value1] => 222.4021
            [value2] => 8.6395   
        )

)

如何获得第一行作为其他值的键?

里齐尔123

这应该为您工作:

在这里,我首先将文件放入一个数组,file()其中每一行都是一个数组元素。在那里,我忽略了每行末尾的换行符,并跳过了空行。

之后,我用循环遍历每行,array_map()并用preg_split()1个或多个空格分隔在返回之前,我使用删除了空元素array_filter()

然后我得到的第一innerArray如$headerarray_shift()

最后,我只需要再次遍历所有innerArrays以及数组中array_combine()的值即可$header

<?php

    $lines = file("file.txt", FILE_IGNORE_NEW_LINES |FILE_SKIP_EMPTY_LINES);

    $data = array_map(function($v){
        return array_filter(preg_split("/\s+/", $v));
    }, $lines);

    $header = array_shift($data);

    $data = array_map(function($v)use($header){
        return array_combine($header, $v);
    }, $data);

    print_r($data);

?>

输出:

Array
(
    [0] => Array
        (
            [time] => .00
            [value1] => .0000
            [value2] => 21.2310
        )

    [1] => Array
        (
            [time] => 100.92
            [value1] => 200.2272
            [value2] => 7.7243
        )

    [2] => Array
        (
            [time] => 200.92
            [value1] => 222.4021
            [value2] => 8.6395
        )

)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

读取CSV文件作为字典,其中包含第一行作为标题(键)

来自分类Dev

读取CSV文件作为字典,其中包含第一行作为标题(键)

来自分类Dev

如何从文件中读取第一行作为值,第二行作为字典的键

来自分类Dev

在PySpark中读取文件并将其转换为Pandas Dataframe时,如何将第一行作为标题

来自分类Dev

如何从文件中读取第一行作为键,将接下来的 3 行作为值列表读取到字典,python

来自分类Dev

无法读取文件的第一行

来自分类Dev

C#读取Excel文件,其中标题不是第一行

来自分类Dev

不带列标题的SAS .DAT文件在SAS Studio中仅读取第一行

来自分类Dev

熊猫:读取没有列标题且数据不在第一行开始的Excel

来自分类Dev

RecylerView以固定的第一行作为标题

来自分类Dev

第一行作为datagridview中的标题

来自分类Dev

从csv文件中读取第一行并根据它创建表(csv文件字段)

来自分类Dev

仅将表的第一行作为向量读取的有效方法

来自分类Dev

从文件读取,但是读取的第一行是错误的

来自分类Dev

从数据框的第一行创建数据框的标题

来自分类Dev

PHP数组-从CSV文件读取,创建第一列键,第二列值

来自分类Dev

读取没有行终止符的文件的第一行

来自分类Dev

Perl如何从作为数组元素的文件句柄中读取一行

来自分类Dev

Perl如何从作为数组元素的文件句柄中读取一行

来自分类Dev

将第一行作为下一行的哈希键?

来自分类Dev

如何在Python中读取数组的第一行

来自分类Dev

如何使用Java有效读取Hadoop(HDFS)文件中的第一行?

来自分类Dev

您可以从带有open(fname,'a +')的文件中读取第一行吗?

来自分类Dev

如何使用Java有效读取Hadoop(HDFS)文件中的第一行?

来自分类Dev

从文件中读取行并输出具有行号的每一行

来自分类Dev

从文件中读取行并输出具有行号的每一行

来自分类Dev

在一行上创建具有可变键和值的新对象

来自分类Dev

Python Pandas无法读取csv文件的第一行

来自分类Dev

读取Clojure中的文件并忽略第一行?

Related 相关文章

  1. 1

    读取CSV文件作为字典,其中包含第一行作为标题(键)

  2. 2

    读取CSV文件作为字典,其中包含第一行作为标题(键)

  3. 3

    如何从文件中读取第一行作为值,第二行作为字典的键

  4. 4

    在PySpark中读取文件并将其转换为Pandas Dataframe时,如何将第一行作为标题

  5. 5

    如何从文件中读取第一行作为键,将接下来的 3 行作为值列表读取到字典,python

  6. 6

    无法读取文件的第一行

  7. 7

    C#读取Excel文件,其中标题不是第一行

  8. 8

    不带列标题的SAS .DAT文件在SAS Studio中仅读取第一行

  9. 9

    熊猫:读取没有列标题且数据不在第一行开始的Excel

  10. 10

    RecylerView以固定的第一行作为标题

  11. 11

    第一行作为datagridview中的标题

  12. 12

    从csv文件中读取第一行并根据它创建表(csv文件字段)

  13. 13

    仅将表的第一行作为向量读取的有效方法

  14. 14

    从文件读取,但是读取的第一行是错误的

  15. 15

    从数据框的第一行创建数据框的标题

  16. 16

    PHP数组-从CSV文件读取,创建第一列键,第二列值

  17. 17

    读取没有行终止符的文件的第一行

  18. 18

    Perl如何从作为数组元素的文件句柄中读取一行

  19. 19

    Perl如何从作为数组元素的文件句柄中读取一行

  20. 20

    将第一行作为下一行的哈希键?

  21. 21

    如何在Python中读取数组的第一行

  22. 22

    如何使用Java有效读取Hadoop(HDFS)文件中的第一行?

  23. 23

    您可以从带有open(fname,'a +')的文件中读取第一行吗?

  24. 24

    如何使用Java有效读取Hadoop(HDFS)文件中的第一行?

  25. 25

    从文件中读取行并输出具有行号的每一行

  26. 26

    从文件中读取行并输出具有行号的每一行

  27. 27

    在一行上创建具有可变键和值的新对象

  28. 28

    Python Pandas无法读取csv文件的第一行

  29. 29

    读取Clojure中的文件并忽略第一行?

热门标签

归档