php 读取 csv 转数组列表

我们有个文档需要修改,但是文档列太多,以及数量太大,以至于眼睛看起来很吃力,于是我决定做个简单的转化用脚本读取我想要验证的列的内容是否正确.

于是就产生了一个这样将csv快速的转为数组列表的功能函数

调用方法如下:

<?php
$result = csv_to_array('my.csv', ['A', 'C']);
var_dump($result);

功能代码如下:

<?php

function csv_to_array(string $file = '', array $need_column = [])
{
    $data = [];
    $r = fopen($file, 'r');
    $first_column = fgetcsv($r);
    $column = [];
    foreach ($first_column as $k => $value)
    {
        if (empty($need_column) || in_array($value, $need_column)) {
            $column[$k] = $value;
        }
    }
    while($row = fgetcsv($r))
    {
        foreach ($row as $k => $v)
        {
            if (!isset($column[$k])) {
                continue;
            }
            $item[$column[$k]] = $v;
        }
        $data[] = $item;
    }
    return $data;
}

CSV内容示例

 

 代码执行结果

array(3) {
  [0]=>
  array(2) {
    ["A"]=>
    string(1) "2"
    ["C"]=>
    string(1) "4"
  }
  [1]=>
  array(2) {
    ["A"]=>
    string(1) "3"
    ["C"]=>
    string(1) "5"
  }
  [2]=>
  array(2) {
    ["A"]=>
    string(1) "4"
    ["C"]=>
    string(1) "6"
  }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章