簡體   English   中英

PHP 如何從 csv 文件中的所有列中獲取數據並將其存儲在數組中

[英]PHP How to get data from all column from csv file and store it in array

我正在嘗試從 csv 文件中讀取從第三列到第 12 列的每一列,並將所有數據存儲在一個數組中。 此時我只得到最后一列:這是我的文件:

在此處輸入圖像描述

這是我的代碼:

<?php

$in_file = 'gabriel-images-urls.csv';

$fd = fopen($in_file, "r");

$new_array[]= array();

$start_row = 2;

$i = 2;//define row count flag


while (($row = fgetcsv($fd)) !== FALSE) {
    for ($col=3; $col<=11; $col++) {         
        $row[] = $row[$col];
        if($i >= $start_row){
           $url = $row[$col];
           $url_name = basename($url);
           $new_array[] = [$row[0], $row[1],$url_name];
      }
   $i++;
 }
?>

所以想法是變量 $url_name 包含來自上述文件的所有鏈接及其基本名稱,以及是否可以在數組中用逗號分隔。 預期 output:

     Array

    (
        [0] => G5651407J
        [1] => G5651407J
        [2] => https://assets.suredone.com/683987/media-photos/g5651407j-gabriel-g56514-front-right-ultra-premium-twin-tube-strut-for-lexus-toyota-models.jpg, https://assets.suredone.com/683987/media-photos/cfc869-bendix-premium-copper-cfc869-front-brake-pad-set-for-chrysler-sebring-models-2.jpeg, https://assets.suredone.com/683987/media-photos/cfc869-bendix-premium-copper-cfc869-front-brake-pad-set-for-chrysler-sebring-models-3.jpeg
    )

我希望所有鏈接都位於數組的第三個元素處,用逗號分隔。

<?php

$in_file = 'gabriel-images-urls.csv';
$fd = fopen($in_file, "r");
$new_array= array();
$i=0;
while (($row = fgetcsv($fd)) !== FALSE)
{
    if($i!=0)
    {
        $url_array = array();
        for ($col=2; $col<=11; $col++) 
        {
            if(isset($row[$col]) && trim($row[$col])!=null)
            {
                $url = $row[$col];
                $url_array[] =$url;
            }

        }

        $new_array[] = array($row[0],$row[1],implode($url_array,','));
    }
    else if($i==0)
    {
        $i++;
    }
}

echo '<pre>';
print_r($new_array);
echo '</pre>';

?>

我還優化了您的代碼以停止每次增加行標志。 檢查它是否適合您。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM