zoukankan      html  css  js  c++  java
  • php下把文件中行数据转换为数组

        问题的背景是设置在数据迁移过程中的,需求是这样的,把数据库中的表数据导入到文件中,然后读取此文件,把数据写入到另一个库中。

    从数据库中把表数据导出到文件的命令为:image

    命令也可以写成:myql -uroot -pmysql test -e "select * from tickets" > /tmp/ticket.txt

    其中,test指的是数据库的名称,这样,数据会导入到/tmp/ticket.txt文件中,其中第一行为字段名称,文件如下:

    image

    总体的思路是:把数据的每一行作为一个数组,其中key为第一行的字段值,关键代码如下:

     1 <?php
     2 $file = fopen("/tmp/ticket.txt", "r");
     3 
     4 $line = fgets($file);
     5 
     6 // 数据之间的分隔符默认为"\t",行分隔符为"\n"
     7 // 把第一行转换为数组
     8 $key = explode("\t", trim($line, "\n"));
     9 print_r($key);
    10 
    11 // 循环处理每一行
    12 while(!feof($file)) {
    13     $line = fgets($file);
    14     if ($line) {
    15 
    16         // array_combine要求两个数组的大小是一致的,否则会返回false
    17         $data = array_combine($key, explode("\t", trim($line, "\n")));
    18         print_r($data);
    19     }
    20 }
    21 
    22 fclose($file);

    这样,$data 就是我们要求的数据,就像从数据库中读出的。

  • 相关阅读:
    codeforces 466D
    codeforces 360B
    codeforces 383D
    codeforces 679B
    codeforces 571B
    codeforces 494B
    CodeForces 660D Number of Parallelograms(n个点所能组成的最多平行四边形数量)
    算法竞赛模板 最短路
    算法竞赛模板 string中substr函数的运用
    HDOJ 1269 迷宫城堡(tarjan模板题)
  • 原文地址:https://www.cnblogs.com/dingjing/p/2834875.html
Copyright © 2011-2022 走看看