CSV 列值作为 PHP 中的变量
CSV column values as variables in PHP
我有简单的 csv 文件:
编号 |恩
1 | 2342342345234
2 | 3453453454353
我想在 foreach 循环中通过变量访问此数据:
$id = 1, $ean = 2342342345234
这可能吗?
<?php
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
下面是一些创建关联数组的示例代码。
$lines = explode( "\n", file_get_contents( 'input.csv' ) );
$headers = str_getcsv( array_shift( $lines ) );
$data = array();
foreach ( $lines as $line ) {
$row = array();
foreach ( str_getcsv( $line ) as $key => $field )
$row[ $headers[ $key ] ] = $field;
$row = array_filter( $row );
$data[] = $row;
}
你的定界符是竖线,不是逗号所以改变你的fgetcsv
的第三个参数。如果您在当前迭代中使用这些值,则可以静态分配这些值,或者使用数组进行以后的存储。
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, "|")) !== FALSE) {
$id = $data[0];
$ean = $data[1];
...
或数组:
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, "|")) !== FALSE) {
$ids[] = $data[0];
$eans[] = $data[1];
然后使用 foreach
和 key
来访问适当的配对。
foreach($ids as $key => $id) {
echo $id . ' ' . $eans[$key];
}
我有简单的 csv 文件:
编号 |恩
1 | 2342342345234
2 | 3453453454353
我想在 foreach 循环中通过变量访问此数据: $id = 1, $ean = 2342342345234
这可能吗?
<?php
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
下面是一些创建关联数组的示例代码。
$lines = explode( "\n", file_get_contents( 'input.csv' ) );
$headers = str_getcsv( array_shift( $lines ) );
$data = array();
foreach ( $lines as $line ) {
$row = array();
foreach ( str_getcsv( $line ) as $key => $field )
$row[ $headers[ $key ] ] = $field;
$row = array_filter( $row );
$data[] = $row;
}
你的定界符是竖线,不是逗号所以改变你的fgetcsv
的第三个参数。如果您在当前迭代中使用这些值,则可以静态分配这些值,或者使用数组进行以后的存储。
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, "|")) !== FALSE) {
$id = $data[0];
$ean = $data[1];
...
或数组:
$row = 1;
if (($handle = fopen("upload/products.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 10000, "|")) !== FALSE) {
$ids[] = $data[0];
$eans[] = $data[1];
然后使用 foreach
和 key
来访问适当的配对。
foreach($ids as $key => $id) {
echo $id . ' ' . $eans[$key];
}