我的 CSV 有类似的表格
现在,我想做的是,对于每条记录,我想获取相应的单元格数据并将它们放入变量中。(然后我需要使用变量执行一些任务)。
例如(对于每一行,它们在变量中的值)
$id = 1;
$name = 'Test';
等等
数组可以用来做到这一点。
例如,$row_1 = ('1', 'Test', 'chicago', 'testuser', '21', '123456789')
我尝试搜索谷歌,但结果与我的查询无关。
所以你可以在每一行上运行一个 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 文件位置放在代码中
希望有帮助
哦...以为是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];
}
然后你最终得到相同的对象。
看看 fgetcsv() 和家人......
此外,您的 CSV 文件最好符合 CSV 标准;我发现很多 CSV 文件是使用非标准约定生成的……这让互操作非常痛苦。
http://www.php.net/manual/en/function.fgetcsv.php
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);
我采用了自己的技术,每行用逗号分隔。