我的CSV有像这样的表格
现在,我想要做的是,对于每条记录,我想获取相应的单元格数据并将它们带入变量中。 (我需要用变量执行一些任务)。
e.g。 (对于每一行,它们在变量中的值)
$id = 1;
$name = 'Test';
等等
可以使用数组来执行此操作。
例如, $ row_1 =('1','测试','芝加哥','测试用户','21','123456789')
我尝试搜索谷歌,但结果与我的查询无关。
答案 0 :(得分:2)
因此,您可以在每一行上运行for循环,并让它从每行和单元格返回数据。
<?php
$row = 1;
if (($handle = fopen("data.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";
// echo $data[1];
}
}
fclose($handle);
}
?>
请记住将您的csv文件位置放在代码中
希望有所帮助
答案 1 :(得分:0)
doh ...以为是JavaScript ..
但我想我可以尝试使用PHP:http://codepad.org/8SBgTCYy
$labels = explode(",", "id,name,city,username,contact_id,phone");
$values = explode(",", "1,Test,chicage,testuser,21,123456789");
$i = 0;
$count = count($labels);
$object = array();
for ( ; $i < $count; $i++ ) {
$object[$labels[$i]] = $values[$i];
}
var_dump($object);
和另一个:http://codepad.org/AmVp08QR
$values = explode(",", "id,1,name,Test,city,chicago,username,testuser,contact_id,21,phone,123456789");
$i = 0;
$count = count($values);
$object = array();
for( ; $i < $count; $i++ ) {
$object[$values[$i]] = $values[$i+1];
}
var_dump($object);
像这样:
id,name,city,username,contact_id,phone
和
1,Test,chicage,testuser,21,123456789
var labels = "id,name,city,username,contact_id,phone".split(","),
values = "1,Test,chicage,testuser,21,123456789".split(","),
object = {},
i = 0,
len = labels.length;
for( ; i < len; i++) object[labels[i]] = values[i];
现在您将名为object
的对象称为:
{
id: "1",
name: "Test",
city: "chicago",
username: "testuser",
contact_id: "21",
phone: "123456789"
}
或者像这样:
id,1,name,Test,city,chicago,username,testuser,contact_id,21,phone,123456789
var values = "id,1,name,Test,city,chicago,username,testuser,contact_id,21,phone,123456789".split(","),
object = {},
i = 0,
len = values.length;
for ( ; i < len; i+=2 ) {
object[values[i]] = values[i+1];
}
然后你最终得到了相同的对象。
答案 2 :(得分:0)
看看fgetcsv()和家人......
此外,您的CSV文件更符合CSV标准;我发现很多CSV文件是使用非标准约定生成的...它使互操作非常痛苦。
http://www.php.net/manual/en/function.fgetcsv.php
答案 3 :(得分:0)
array_combine()可能会对您有所帮助:
$labels = explode(",", "id,name,city,username,contact_id,phone");
$values = explode(",", "1,Test,chicage,testuser,21,123456789");
// Use fgetcsv() to read these from your file
$data = array_combine($labels,$values);
var_dump($data);
答案 4 :(得分:0)
我采用了自己的技术,将每一行逗号分开。