2016-09-19 10 views
1

私はPHPには比較的新しいので、これが簡単なのであれば私の無知を許してください。PHP配列のみCSVに1つの結果を返す

すべての結果をCSVファイルに書き込むことを最終目標としてAPI呼び出しの結果を取得していますが、最初の配列のみをCSVに書き込むという点を除いて、すべての結果が得られましたファイル。結果をエコーすると、通常は10-15の結果が返されるため、レコード(配列)が増えていることはわかっています。以下は私が使用しているコードです。周り10-15があるはずですけれどもここ

foreach ($list as $order) { 
$listOrders = array (
    array($order->getBuyerName(), $address['AddressLine1'], $address['AddressLine2'], $address['AddressLine3'], $address['City'], $address['StateOrRegion'], $address['PostalCode'], $orderinfo->getSKU()) 
); 
} 

$fp = fopen('order-file.csv', 'w'); 

foreach ($listOrders as $fields) { 
    fputcsv($fp, $fields); 
} 

fclose($fp); 

は、1つの結果のサンプルです:

"TONYA","7X XX Avenue",,,"Spokane Valley",WA,99212,B123 
+1

Your'eにエントリが1つだけで$ listOrders配列を作成するようになっているはずですので、配列に要素を追加$listOrders[] = $var構文を使用するには] = 配列($ order-> getBuyerName()、$ address ['AddressLine1']、$ address ['AddressLine2']、$ address ['AddressLine3']、$ address ['City']、$ address ['StateOrRegion ']、$ address [' PostalCode ']、$ orderinfo-> getSKU()); } ' –

+1

各繰り返しで$ listOrdersを上書きしています。それをあなたのforeachの前に配列として定義し、Markがそれぞれのループに新しい配列を追加すると言ったものを使用してください。 – aynber

+0

ありがとうございます、下のJanと一緒にあなたの助けを借りて問題を解決しました。 –

答えて

2

あなたは常に各foreachサイクルで$listOrders配列を上書きします。 `foreachの($順と$リスト){ $ listOrders [:それはこの

$listOrders = array(); 
foreach ($list as $order) { 
    $listOrders[] = array($order->getBuyerName(), $address['AddressLine1'], $address['AddressLine2'], $address['AddressLine3'], $address['City'], $address['StateOrRegion'], $address['PostalCode'], $orderinfo->getSKU()); 
} 
関連する問題