尝试将.csv文件中的信息处理到 PHP 中



我正在尝试从 .CSV 文件,以便使用 PHP 处理到本地数据库中。

我有以下代码:

<?
$csv = array_map('str_getcsv', file('red.csv'));
echo $csv[1];
?>

如果我尝试用print_r或var_dump回显array_map,第一位有效 - 但我不确定如何以这种方式处理它。我习惯于能够使用 for 循环进行循环,其中 $csv 是一个数组,[0] 是记录 - 但现在唯一ECHO的就是Array

我以前从未使用过array_map - 我在网上其他地方找到了我正在使用的代码(显然除了回声)。

如何遍历整个数组以单独处理每条记录?

Arrayecho ed 的原因是因为 str_getcsv 返回一个数组。所以$csv是一个数组,其中的每个元素都是 csv 值的数组。如果将其更改为

<?php
$csv = array_map('str_getcsv', file('red.csv'));
print_r($csv[0]);
?>

您将能够看到该行作为每个 csv 项目的数组。

你可以用这个循环浏览csv:

if (($handle = fopen("your.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, null, ";", '"')) !== FALSE) {
        // $data is an array that contains the current row
    }
}

注意:根据您的 CSV 更改 fgetcsv() 中的分隔符和转义字符。

您可以使用

以下结构遍历/迭代 CSV 数组:

foreach( $csv as $row_id => $row_data ) {
    foreach( $row_data as $cell_id => $cell_data ) {
         // The next will output the same data
         echo $cell_data . 'n';
         echo $csv[$row_id][$cell_id] . 'n';
    }
}

请按照以下代码从csv获取数据,遍历每一行。

<?php
    $csv = array_map('str_getcsv', file('red.csv'));
    //print_r($csv[0]);
    foreach($csv as $key=>$v)
    { 
    echo $csv[$key][0];//column A/0
    echo $csv[$key][1];//column B/1
    }
    ?>

最新更新