我們有個文檔需要修改,但是文檔列太多,以及數量太大,以至於眼睛看起來很喫力,於是我決定做個簡單的轉化用腳本讀取我想要驗證的列的內容是否正確.
於是就產生了一個這樣將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" } }