[英]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.