2011-07-21 16 views
0

配列は次の形式です - 基本的には書式設定済みのCSV行の配列です - この例のキー0と1は改行を含むCSV値です。array()内のCSV行は、改行を維持する必要があります

私は次のやっている何を
Array 
(
    [0] => 'foo,foo,foo,foo 
    bar,foo,a:1:{i:0;s:4:"blah";}' 
    [1] => 'bar,bar,bar,bar 
    foo,bar,a:1:{i:0;s:4:"blah";}' 
    [1] => 'bar,bar,bar,foo,bar,a:1:{i:0;s:4:"blah";}' 
) 

は、それを書いた後、CSVファイルを生成するために、接着剤として\r\nを使用していることを内破されます。問題は、結果のファイルが改行を含むフィールドを二重引用符で囲んでいないため、改行が保存されている可能性があるということです(少なくとも私は仮定します)。

生成されたCSVファイルはデータベースにアップロードされるかExcelで編集され、改行はフィールドに保存する必要があります。

適切な形式に展開した後にfputcsvを使用すると、行区切りを持つCSVが生成され、メモ帳などで表示される二重引用符で囲まれ、Excelで開かれたときには表示されません。

$parent_wholelines = array(); 
    foreach ($output_array as $wholeline) { 
    $parent_wholelines[] = explode(',', $wholeline); 
    } 
+2

「var_export」を推奨します。 'print_r'はあなたのデータが何であるかを_precisely_に見せてくれません。 –

+0

@ Tomalak-Geret'kal - var_exportは同じ場合を出力し、キーラッピング引用符ごとにいくつか出力します。 – Dan

+0

はい;それらは有用である。私たちの分野では、精度が重要です。 –

答えて

0

http://www.php.net/manual/en/function.fputcsv.phpのスニペットが参考になる場合があります。 または、シリアル化を使用する:http://php.net/manual/en/function.serialize.php

+0

ありがとうございますが、それはphp.netのfputcsvからのコピー&ペーストです。私はそれを使用する方法を知っている、私のデータはその形式ではないため、私は別の質問をしています。私はserialize()を認識しています。これは、サンプルデータのいくつかがどのように作成されるのかということです。私はCSVの最終的なインポートをオーサリングしていないので、ストリング全体を保存するために使用することはできません。 – Dan

関連する問題