从CSV中获取每行数据,然后将其数据单元格存入variables
我的CSV有像表
现在,我想要做的是,对于每个logging,我想要获取相应的单元格数据并将它们放入variables中。 (我需要使用variables执行一些任务)。
例如(对于每一行,它们在variables中的值)
$id = 1; $name = 'Test';
等等
数组可以用来做到这一点。
例如,$ row_1 =('1','Test','chicago','testuser','21','123456789')
我试图search谷歌,但结果与我的查询无关。
所以你可以在每一行上运行一个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文件是使用非标准的惯例生成的……这使得interop非常痛苦。
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);
我采用了我自己的技术,把每一行的逗号分隔开来。