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

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

php 读取 csv 转数组列表的更多相关文章

  1. C++ 把数组数据存入 CSV 文件,以及读取 CSV 文件的数据

    1. CSV-百度百科 2. 代码 #pragma once //Microsoft Visual Studio 2015 Enterprise #include<iostream> #i ...

  2. 【ASP.NET Core】MVC模型绑定:自定义InputFormatter读取CSV内容

    在上一篇文章中,老周介绍了用自定义 ModelBinder 的方式实现一个 API(或MVC操作方法)可以同时支持 JSON 格式和 Form-data 格式的数据正文.今天该轮到 InputForm ...

  3. 内容写到 csv 格式的文件中 及 读取 csv 格式的文件内容

    <?php/*把内容写到 csv 格式的文件中 基本思路是:1.用 $fp = fopen("filename", 'mode')打开一个csv文件,可以是打开时才建立的2. ...

  4. Unity 读取CSV与Excel

    前几天看到我们在游戏中需要动态加载某些角色的游戏策划值,关于这个问题怎么解决呢?其实办法很多种,归根到底,就是数据的读取.我们可以想到的存储数据的载体有很多.例如:txt,xml,csv,excel. ...

  5. 使用univocity-parsers创建和读取csv文件

    import com.univocity.parsers.csv.CsvFormat;import com.univocity.parsers.csv.CsvParser;import com.uni ...

  6. matlab读取csv文件数据并绘图

    circle.m(画二维圆的函数) %该函数是画二维圆圈,输入圆心坐标和半径%rectangle()函数参数‘linewidth’修饰曲线的宽度%'edgecolor','r',edgecolor表示 ...

  7. python之小应用:读取csv文件并处理01数据串

    目的:读取csv文件内容,把0和1的数据串取出来,统计出现1的连续次数和各次数出现的频率次数 先读取csv文件内容: import csv def csv_read(file): list = [] ...

  8. Python 读取csv的某行

    站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存 ...

  9. Java读取CSV和XML文件方法

    游戏开发中,读取策划给的配置表是必不可少的,我在之前公司,策划给的是xml表来读取,现在公司策划给的是CSV表来读取,其实大同小异,也并不是什么难点,我就简单分享下Java如何读取XML文件和CSV文 ...

  10. 2.6 Go 读取CSV

    Go读取CSV文件,其内容被转换成字符串数组 package main import ( "encoding/csv" "fmt" "io/iouti ...

随机推荐

  1. Devexpress GridView 单元格输入检验

    实现效果 打开设计器 找到CellValueChanged事件 编写代码 private void gvmain_CellValueChanged(object sender, DevExpress. ...

  2. Linux 运行 Bitcoin 软件

    首先进入官网 bitcoin.org 下载 Bitcoin Core. 下载得到 tar.gz 文件后解压,并安装: tar xzf bitcoin-25.0-x86_64-linux-gnu.tar ...

  3. c++学习笔记(四):面向对象

    目录 类 & 对象 封装 访问权限 类的构造函数&析构函数 构造函数的分类及调用 拷贝构造函数的调用时机 构造函数调用规则 深拷贝与浅拷贝 初始化列表 类对象作为类成员 静态成员 C+ ...

  4. Seata 四大模式详解

    分布式事务 参考文章: 分布式事务实战方案汇总 https://www.cnblogs.com/yizhiamumu/p/16625677.html 分布式事务原理及解决方案案例https://www ...

  5. C++: 16个基础的C++代码性能优化实例

    前言 近期推动项目屎山代码进行了一波性能优化,实现了较大的性能提升.这里记录了部分近期代码优化的小技巧,这些例子仅从C++语言层面进行优化,主要在于优化类设计.减少隐含函数调用.减少拷贝等,较为基础实 ...

  6. Atziluth's Last Contest. 001题解

    被dalaoYHH爆虐 问题 H:mcd 题目描述 给出两个长为 \(n\) 的数列 \({a_n},{b_n}\),保证 \(a_i\le b_i(i=1,2,\cdots,n)\). 现在您需要对 ...

  7. 前端使用 Konva 实现可视化设计器(22)- 绘制图形(矩形、直线、折线)

    本章分享一下如何使用 Konva 绘制基础图形:矩形.直线.折线,希望大家继续关注和支持哈! 请大家动动小手,给我一个免费的 Star 吧~ 大家如果发现了 Bug,欢迎来提 Issue 哟~ git ...

  8. Spring —— 注解开发(管理第三方bean)

    第三方bean管理       第三方bean依赖注入       

  9. 北京智和信通亮相2023IT运维大会,共话数智浪潮下自动化运维新生态

    2023年9月21日,由IT运维网.<网络安全和信息化>杂志社联合主办的"2023(第十四届)IT运维大会"在北京成功举办.大会以"以数为基 智引未来&quo ...

  10. const` 关键字位于函数签名的末尾

    在 C++ 中,const 关键字可以应用于成员函数,表示该函数不会修改对象的成员变量. const 出现在 operator->() 成员函数的末尾,这意味着该成员函数在调用时不会修改对象的任 ...