douhuangjie4503 2017-03-11 01:15
浏览 91
已采纳

将数组转换为csv时出现php- extra逗号

I have an array which looks somewhat like this

$cars = array
  (
  array("Name","Price","Hours"),
  array("AMW",15,13),
  array("Saab",5,2),
  array("Cand Rover",17,15)
  );

And I'm trying to convert this array to CSV data so that I can write it into a file.

I have a function which takes an array as input and converts it into CSV format. It looks like this:

function array_2_csv($array) 
{
     $csv = array();
     foreach ($array as $item) 
     {
         if (is_array($item)) 
         {
             $csv[] = array_2_csv($item);
             $csv[]="
";
         } 
         else 
         {
             $csv[] = $item;
         }
     }
     return implode(',', $csv);
}

It works but an extra comma appears on front of lines. How can I remove that?

Expected Output

Name,Price,Hours
AMW,15,13,
Saab,5,2,
Cand Rover,17,15

Output I'm getting is:

Name,Price,Hours,
,AMW,15,13,
,Saab,5,2,
,Cand Rover,17,15,

Full Code

$cars = array
  (
  array("Name","Price","Hours"),
  array("AMW",15,13),
  array("Saab",5,2),
  array("Cand Rover",17,15)
  );
$csv_data = array_2_csv($cars);

echo $csv_data;
function array_2_csv($array) 
{
     $csv = array();
     foreach ($array as $item) 
     {
         if (is_array($item)) 
         {
             $csv[] = array_2_csv($item);
             $csv[]="
";
         } 
         else 
         {
             $csv[] = $item;
         }
     }
     return implode(',', $csv);
}

展开全部

  • 写回答

3条回答 默认 最新

  • dongwuwu6104 2017-03-11 01:18
    关注

    Do like below (your code modification):-

    $csv_data = array_2_csv($cars);
    
    echo $csv_data;
    function array_2_csv($array) 
    {
         $csv = ''; //take string
         foreach ($array as $item) 
         {
             if (is_array($item)) 
             {
                 $csv .= implode(',',$item); // implode and add to string
                 $csv .="
    "; // add new line
             }else{
               $csv .= $item; // direct add value to string
               $csv .="
    "; //add new line
             } 
    
         }
         return $csv; //return string
    }
    

    Output:-https://eval.in/752820

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部