2016-09-28 10 views
-1

電子商取引プラットフォームの製品情報を含むCSVファイルがあります。 CSVファイルには、同じ製品IDと複数の説明を持つ複数の行が含まれています。各値はカンマの代わりに "^"で区切られています。 私が達成したいのは、これらの複数の行を1つにまとめ、コンマを区切り、製品情報とともに1行しか持たないことです。だから私の問題は、同じ属性を持つ複数の行を結合することです。ここで同じIDのCSVファイルマルチプレックス

は、ファイルの整形が今日ある

productID^Element^Value<br> 
id01^Status^01<br> 
id01^edited^2016-01-01<br> 
id01^Longdesc^Here goes the description<br> 
id01^Longdesc^Here is the second line of description<br> 
id01^longdesc^And the third row<br> 
id01^image^Link to image 1<br> 

これは私が達成するために探しているものです:

ID01, 2016-01-01, Here goes the description Here is the second line of description And the third row, link to image 

他のアイデアは、ANに構造を置くことです素敵なXMLファイル。

皆さん、これには良い解決策があり、私を助けてくれることを願っています。

ありがとうございました!

+0

- ラインを通るループは、それらを解析し、あなたが好きな方の方法、それらを再印刷します。これまでに何を試しましたか? –

+0

私はこれを試しました:http://stackoverflow.com/questions/25610886/how-to-concatenate-values-from-multiple-rows-with-the-same-id-to-a-comma-separat結合するためにlongdescriptionを得る。 – Koolander

答えて

0

コードを鳴らしてみてください。私はこのコードがうまくいくと確信しています。

public function import_product_from_csv() { 
     ini_set('max_execution_time', 1000); 
     $fh = fopen('your_csv_file.csv', 'r'); 
     fgets($fh, 4096); 

     while (!feof($fh)) { 
      $buffer = fgets($fh, 4096); 
      $arrTemp = explode('^',$buffer); 

      if($arrTemp[0] != "") { 
       $data = array(
        'productID' => $arrTemp[0], // codice provincia 
        'Element' => $arrTemp[1], //codice comune 
        'Value' => $arrTemp[2] //denominazione 
       ); 
       $sql_query = "insert into table_name (productID, Element, Value) values ('".$arrTemp[0]."', '".$arrTemp[1]."', '".$arrTemp[2]."')"; 
       mysql_query($sql_query); 
      } 

      /*echo "<pre>"; 
      print_r($arrTemp); 
      echo "</pre>";*/ 
     } 
     fclose($fh); 
     echo "Uploaded"; 
    } 

ハッピーコード...シンプルな十分な問題のように思える

+0

@sebastianbroschへのThxは仕事を得ました – Koolander

+0

またthx @razibalmamun – Koolander

+0

あなたの問題が解決したら、この回答を受け入れてください –