簡體   English   中英

PHP在特定的csv文件列中讀取數組

[英]PHP read in specific csv file column as an array

我是PHP的新手,希望能夠讀入一個有兩列的csv文件,一個是數字(類似ID),另一個是整數值。 我查找了fgetcsv函數,但是我找不到從csv文件中讀取特定列的方法。

我想從第二列獲得所有值,沒有標題。

這樣做的任何方式?

這是我到目前為止:

$file = fopen('data.csv', 'r');
$line = fgetcsv($file);

這是來自csv文件的一些示例數據:

ID,Value
1,243.00
2,243.00
3,243.00
4,243.00
5,123.11
6,243.00
7,180.00
8,55.00
9,243.00

任何幫助,將不勝感激。

謝謝。

fgetcsv()一次只讀取一行文件。 你必須在一個循環中讀取文件才能得到它:

$data = array();
while($row = fgetcsv($file)) {
   $data[] = $row;
}

您可以通過在循環外執行fgetcsv跳過標題來讀取/刪除標題值。 如果您只想要第二列,您可以:

   $data[] = $row[1];

但是,既然你有數據,也許保留它可能是有用的,加上你的新數組用csv中的ID值鍵,所以你也可以:

   $data[$row[0]] = $row[1];

然后你的漂亮閃亮的新數組將完全匹配csv中的內容,但作為ID字段鍵入的數組。

$csv = array_map("str_getcsv", file("data.csv", "r")); 
$header = array_shift($csv); 
// Seperate the header from data

$col = array_search("Value", $header); 
 foreach ($csv as $row) {      
 $array[] = $row[$col]; 
}
// Iterate through data set, creating array from Value column
$header = fgetcsv($h);
$rows = array();
while ($row = fgetcsv($h)) {
    $rows []= array_combine($header, $row);
}
$fp = fopen($filePath, "r+");
$header = fgetcsv($fp);
while ($members = fgetcsv($fp)) {
    $i = 0;
    foreach ($members as $mem) {
        $membersArray[ $i ][ ] = $mem;
        $i++;
    }
}

$newArray = array_combine($header, array_map("array_filter",$membersArray));

您也可以使用此課程http://code.google.com/p/php-csv-parser/

<?php

require_once 'File/CSV/DataSource.php';

$csv = new File_CSV_DataSource;
$csv->load('data.csv');
var_export($csv->connect());

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM