如何将3个外部CSV中的数据放入数组(前2个工作,3个不工作)

时间:2017-12-23 17:29:37

标签: php csv fopen fgetcsv

我正在尝试从3个单独的CSV中获取数据,并将数据放入3个单独的数组中,在前2个工作正常的下面的代码中,第3个是第二个的克隆,其中一些细节已更改不......为什么?

我怎么能让第三个工作呢?

    // First one

    $awd_fp = fopen( 'https://example.com/test1.csv', 'r' );

    $awd_stocks_temp = array();

    while( $awd_row = fgetcsv( $awd_fp ) ) {
        $awd_stocks_temp[] = $awd_row;
    }

    fclose( $awd_fp );

    // Second one

    $aeo_fp = fopen( 'https://example.com/test2.csv', 'r' );

    $aeo_stocks_temp = array();

    while( $aeo_row = fgetcsv( $aeo_fp ) ) {
        $aeo_stocks_temp[] = $aeo_row;
    }

    fclose( $aeo_fp );

    // Third one

    $hb_fp = fopen( 'https://example.com/test3.csv', 'r' );

    $hb_stocks_temp = array();

    while( $hb_row = fgetcsv( $hb_fp ) ) {
        $hb_stocks_temp[] = $hb_row;
    }

    fclose( $hb_fp );

    echo '<hr>';
    echo count( $awd_stocks_temp ) . ' / ';
    echo count( $aeo_stocks_temp ) . '/ ';
    echo count( $hb_stocks_temp );
    echo '<hr>';

1 个答案:

答案 0 :(得分:0)

你的代码工作得很好看起来你的csv文件出了问题。我建议的不是为了阅读csv文件而编写相同的代码而不是为什么不循环使用它。

<?php
$files = array(
    'test1.csv',
    'test2.csv',
    'test3.csv'
);
$stocks_temp = array();
$ctr = 0;
foreach($files as $file){
    $fp = fopen( $file, 'r' );
    while( $row = fgetcsv( $fp ) ) {
        $stocks_temp[$ctr][] = $row;
    }
    fclose( $fp );
    $ctr++;
}

// you will get all data in multidimensional array
echo "<pre>";
print_r($stocks_temp);
?>