2017-06-29 21 views
0

2つの多次元配列を比較し、値を一致させて結果を取得します。それぞれの値のcsvファイルを作成してダウンロードする方法。forループ内でcsvファイルがダウンロードされていません

$mycsvfile_result = array(); 
foreach ($mycsvfile as $arr1) 
{ 
    foreach ($mycsvfile_log as $arr2) 
    { 
     if($arr2[2] == $arr1[0]) 
     { 
     $mycsvfile_result[] = array($arr2[2], $arr2[7]); 
     } 
    }      
} 

がfputcsv

header('Content-type: application/csv'); 
header('Content-Disposition: attachment; filename="demo.csv"'); 
header('Pragma: no-cache'); 
header('Expires: 0'); 
    $fp = fopen('php://output', 'w'); 
     $data=$mycsvfile_result; 
     foreach ($data as $line) 
     { 
     fputcsv($fp, $line); 
     } 
    fclose($fp); 
exit(); 

ためのコード1を試みの下私は

id1,email1 id2,email2 id3,email3 

1つの結果

$csv = "col1,col2 \n";//Column headers 
    foreach ($mycsvfile_result as $record) 
    { 
    $csv.= $record[0].','.$record[1]."\n"; //Append data to csv 
    } 
$csv_handler = fopen ('demo.csv','w'); 
fwrite ($csv_handler,$csv); 
fclose ($csv_handler); 
echo 'Data saved to demo.csv'; 

をfputcsv

ために上記のコードをコード2を試み、このコードを試みました上記コード2の結果は

col1,col2 id1,email1 id2,email2 id3,email3 Data saved to demo.csv 
+0

'$ data = array(" {$ arr2 [2]}、{$ arr2 [7]} ");' WAT !!!なぜあなたは普通の配列を作成しないのですか? –

+0

$ data = array( "$ arr2 [2]、$ arr2 [7]"); @MarkBaker – Puvi

+0

何か冗長なものが見つかるたびにヘッダを設定する –

答えて

0

私はLinuxマシンで作業していますが、私はcsvファイルをアップロードするためのフォルダの許可を忘れています。フォルダの許可を与えた後、それは魅力のように機能します:)

関連する問題