亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 PHP 中按分隔符過濾 CSV 文件中的行

在 PHP 中按分隔符過濾 CSV 文件中的行

PHP
慕神8447489 2023-09-08 21:38:32
這很難用標題來解釋,但是......我這里有 example.csv:'location': 'United States#Arizona#Mesa', 'value: 10', 'value2: 20''location': 'United States#New York', 'value: 24', 'value2: 29''location': 'United States#Arizona', 'value: 21', 'value2: 24''location': 'United States', 'value: 11', 'value2: 22'我希望它被重寫為:'location': 'Mesa', 'value: 10', 'value2: 20''location': 'New York', 'value: 24', 'value2: 29''location': 'Arizona', 'value: 21', 'value2: 24''location': 'United States', 'value: 11', 'value2: 22'通過獲取第一行中的所有值,使用“#”分隔符分割它們,然后獲取第一個和最后一個值并刪除其余的值。我如何使用 PHP 來做到這一點?
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

考慮到您的 csv 文件的名稱是a.csv,這里是代碼


<?php


$newCsv = array();


// Get the file in an array

$csv = array_map('str_getcsv', file('a.csv'));


foreach($csv as $row){

    //Get the first column

    $str = $row[0];

    

    // Split the string

    

    $strParts = explode('#', $str);

    $size =  sizeof($strParts);


    // If it contains #?

    if($size > 1){

        $newFirstRow = "'location' : '". $strParts[$size -1]."'";

    } else{

        $newFirstRow = $row[0];

    }

    


    array_push($newCsv, array($newFirstRow, $row[1], $row[2]));

}



// Open the file in write mode ('w') 

// Remember, this will rewrite the file completely

// If you want to backup the file

// do it before executing this code

$fp = fopen('a.csv', 'w'); 

  

// Loop through file pointer and a line 

foreach ($newCsv as $fields) { 

    fputcsv($fp, $fields); 

  

fclose($fp); 



?>


查看完整回答
反對 回復 2023-09-08
  • 1 回答
  • 0 關注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號