• 欢迎光临~

php 读取 csv 转数组列表

开发技术 开发技术 2022-10-28 次浏览

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

于是就产生了一个这样将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内容示例

php 读取 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"
  }
}

 

程序员灯塔
转载请注明原文链接:php 读取 csv 转数组列表
喜欢 (0)