首页 > 编程语言 >php 读取 csv 转数组列表

php 读取 csv 转数组列表

时间:2022-10-28 15:56:46浏览次数:47  
标签:csv string column value array php 读取

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

于是就产生了一个这样将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"
  }
}

 

标签:csv,string,column,value,array,php,读取
From: https://www.cnblogs.com/lizhaoyao/p/16836337.html

相关文章

  • 如何读取被占用文件内容
    提问如何读取被占用文件内容解答publicoverride(boolok,stringmsg)Excute(){varpath=Path.Combine(AppDomain.CurrentDomain.BaseDirectory,$......
  • Java读取properties配置文件工具包
    一、properties文件简介java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties......
  • vue 本地加载txt 并读取
    <template><div><el-button@click="txtbtn">插入文本</el-button><inputtype="file"@change="loadTextFromFile"id="txt"style="display:none"/>......
  • 自动化测试框架遇到的错误-python的xlrd读取Excel数据失败: raise XLRDError(FILE_FORM
    python的xlrd读取Excel数据失败:raiseXLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+’;notsupported’)xlrd.biffh.XLRDError:Excelxlsxfile;notsupported......
  • c++ 按行读取文件、最好理解、最安全、最不容易出错的方法:
    注意、必须判断一下打开文件是否成功、不然如果输入一个不存在的文件名、程序会陷入死循环:类比Java的文件操作、Java的InputStream需要嵌套几层、需要new出实际的对象......
  • 07Jmeter之CSV数据文件设置遇到的问题
    CSV数据文件设置遇到的问题与解决 问题一:点击jmeter运行,没有响应,查看结果树没返回信息解决:查看日志,文件没有该文件(实际本地只有TXT文件,没有EXCEL文件),选择存在文件即解......
  • Debian/Ubuntu使用apt安装php8.x
    众所周知,Debian官方的包存储库向来比较保守,众多软件的版本都比较老旧.例如都Debian11了,PHP8也发布两年了,PHP版本还是和10一样的7.4(っ°Д°;)っ随着越来越多的主......
  • php在windows上安装kafka扩展
    一、下载kafka扩展包链接:https://pecl.php.net/package/rdkafka二、解压安装包三、修改php.ini复制librdkafka.dll到php\php7.3.4nts\目录下(注意!注意!注意!不是ext文......
  • ntunnel_mysql.php
    前言:问题:服务器有跳板机不能直接用本地navicat链接数据库可以用这个方法导出php脚本通过wep服务3.访问4.本地navicat......
  • 【Matlab】 读取文件各种方法
    本技术支持指南主要处理:ASCII,binary,andMATfiles.要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令:helpiofunMATLAB中有两种文件I/O程序:highle......