2011-06-21 8 views
0

各セクションを電子メールで送信:輸出サブアレイと、私はこのようなものです多次元配列を持っている

 
Array ( 
    [[email protected]] => Array (
     [0] => Array ( 
      [asin] => B004HFS6Z0 
      [title] => Kindle, Wi-Fi, Graphite, 6" Display 
      [price] => 114.00 
      [map] => 125.00)) 
    [[email protected]] => Array ( 
     [0] => Array ( 
      [asin] => B004CYX17O 
      [title] => Rizzy Home Apple 10-Piece Comforter Set, King 
      [price] => 502.80 
      [map] => 520.00))) 

私は、その後、ファイルに電子メールアドレスの下のサブ配列をエクスポートし、それを電子メールで送信されてやろうとしています電子メールアドレス。これまでは、両方のサブアレイを1つのファイルにエクスポートできただけで、2番目のサブアレイのファイルを上書きすることができませんでした。ここで

は、私が働いているコードです:

require('export-xls.class.php'); 
    $filename = 'email.xls'; 
    $xls = new ExportXLS($filename); 
    $header[] = "ASIN"; 
    $header[] = "Title"; 
    $header[] = "Retail"; 
    $header[] = "MAP"; 
    $xls->addHeader($header); 

//create temp csv file and email from subarray 
foreach($map_check2 as $email => $value) { 
//$fp = fopen('uploads/email.csv', 'w+'); 

foreach($value as $subkey => $subvalue) { 
    //echo $email . "<br>"; 
    //print_r($subvalue) . "<br>"; 
    //fputcsv($fp, $subvalue); 

    $xls->addRow($subvalue); 


} 
    $xls->emailFile(); 

} 

私はExcelファイルにエクスポートする必要があり、そうするために輸出xls.classを使用しています。私はcsvを使用していましたが、定期的に配列の値にカンマがあります。

emailFileは()です:誰がどんな考えを

public function emailFile() { 

    #build the xls 
    $xls = $this->buildXLS(); 

    $fp = fopen("uploads/email.xls", "w+"); 
    fwrite($fp, $xls); 
    fclose($fp);   
} 

持っていますか?それとも意味がありますか?

+0

@Reg:ここで問題は何ですか? XLSファイルに書き込めませんか?または電子メールを送信できませんか?電子メールを送信しているコードはどこですか - 私はexport-xlsクラスの一部だと思いますか? – Abhay

+0

私はまだメールを受け取っていません。私は主にファイルの作成を心配していますが、ファイルを開くと最後のサブアレイが表示されますが、両方のサブアレイが一緒に表示されています。 – Reg

+0

私は最初の部分配列からファイルを作成しなければならないと思っています。その後、元のファイルを上書きする必要がありますが、何らかの理由で追加されてしまいます。 – Reg

答えて

0

内部のforeachループでは、$xls->addRow($subvalue)を実行しているようですが、すべての電子メールサブアレイを追加し続けます。外側のforeachの内側で、内側のものの前にいくつかの関数を呼び出して、$ xlsに既に追加されている行を消去する必要があると思います。

は、ここで私は考えることができ、テスト実行されます。外側のforeachへ

  1. 最初の呼び出しが行われている - インナーfoearchへ$ Eメール= [email protected]
  2. 最初の呼び出しが行われています - "[email protected]"配列の各値に対して$ xls-> addrow()を呼び出します。
  3. $ xls-> emailFile()への最初の呼び出しは、w +モードで "email.xls"を開き、書き込みますファイルへの内容
  4. 外部foreachへの2番目の呼び出しが行われます - $ email = [email protected]
  5. inner foearchへの2番目の呼び出しが行われます。 - "[email protected]"配列の各値に対して$ xls-> addrow()を呼び出します。 注 -この時点で、ステップ2の$ xlsに先に追加された行がまだ存在していると思います。もしそうであれば、内部foreachが起動する前か、$ this-> buildXLS()メソッドのいずれかでクリーンアップする必要があります。
  6. $ xls-> emailFile()両方のサブアレイの値を含むファイルに内容を書き込みます。

私は$ this-> buildXLS()の目的がわかりませんし、上記の説明では無視しています。

上記は意味がありますか?

関連する問題