我在csv文件中有如下数据。
先生,Vinay,H S,应用工程师,vinay.hs @ springpeople.com,99005809800,是 先生,Mahammad,Hussain,应用工程师,vinay.hs @ springpeople.com,99005809800,是
我想存储每个数组中的每一行。解释一下如何做到这一点
答案 0 :(得分:1)
我不理解每个数组中的每一行。
使用fgetcsv()函数读取CSV文件。
一个例子
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
OR 如果要将它们存储在数组中,可以使用
$data = array();
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$data[] = $row;
}
}
答案 1 :(得分:0)
您可以使用fgetcsv():
$data = array();
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$data[] = $row;
}
}
答案 2 :(得分:0)
假设CSV是一个文件(如果没有,请使CSV与$csv
匹配,这实际上是在单独的行中分解的文件),这是一个非常简单的方法:
$csv = file('mycsv.csv'); $result = array();
//iterate the lines
foreach ($csv as $line)
// I'd recommend more robust "csv-following" method though (fgetcsv maybe)
$result[] = explode(',',$result);
//show the results
print_r($result);
虽然fgetcsv
可能是一个更安全的赌注(正如其他人所提到的)(参见文档)。
进一步扩展您的评论:
//iterate the lines
foreach ($csv as $line)
// I'd recommend more robust "csv-following" method though (fgetcsv maybe)
$result[] = explode(',',$result);
可以成为:
//iterate the lines
foreach ($csv as $line)
// combine the current results with the new results
$result = array_marge($result,$line);
或者,如果订单很重要:
//iterate the lines
foreach ($csv as $line)
// add each result on to the end of the result array
foreach($line as $val)
// add each value
$result[] = $val;