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"
  }
}

 

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