我有一个包含多行的CSV文件,我想在php中只恢复第1列值等于27的数据,我该怎么做?
这就是我已经做过的事情:
<?php
require(dirname(__FILE__) . '/config/config.inc.php');
$fileDir = 'stock.csv';
$fileCsv = file_get_contents($fileDir);
echo $fileCsv;
我的CSV文件有3列:
| number | ref | stock |
| 19 | 135 | 10 |
| 27 | 656 | 20 |
谢谢。
答案 0 :(得分:2)
正如RiggsFolly指出的那样; fgetscsv()是你最好的工具。
$fileDir = 'stock.csv';
//open the file for reading
$fileCsv = fopen($fileDir,"r");
//initialize our output array
$outputData = array();
//define the line length required for fgetcsv
$lineLength = 100;
//loop the contents of csv and split by `,`
while($row = fgetcsv($fileCsv,$lineLength,',')){
//does our first column equal 27?
if($row[0] == 27){
//store the full row into our output array
$outputData[] = $row;
}
}
//output
print_r($outputData);
答案 1 :(得分:1)
如果您使用目录中的文件,则可以使用此段代码
$csv = array_map('str_getcsv', file('stock.csv'));
它将返回一个关联数组,您可以使用这样的foreach来处理
$just27Array = array();
foreach($csv as $index => $valueArray){
if($valueArray['number'] == 27)
$just27Array[] = $valueArray;
}
在$just27Array
变量中,您将拥有一系列数字等于27的数组