2017-06-05 141 views
0

如何使用foreach循環向數組添加元素?PHP使用foreach()向數組添加元素

$list = [ 
     ['User-ID', 'Payout-ID', 'Amount', 'Withdraw address', 'Date'], 
    ]; 

    //generate CSV 
    foreach ($open_payouts as $open_payout) { 
     $list .= [ 
      (string)$open_payout->user_id, 
      (string)$open_payout->id, 
      (string)number_format($open_payout->amount/100000000, 8, '.', ''), 
      (string)$open_payout->user->withdraw_address, 
      (string)$open_payout->created_at, 
     ]; 
    } 

    $fp = fopen(app_path() . '/CSV/file.csv', 'w'); 
    //write whole list 
    foreach ($list as $fields) { 
     fputcsv($fp, $fields); 
    } 

看起來像我的問題是位於$list .=。如何插入另一個數組到這個數組中,所以我可以從數組中生成一個.CSV文件?

+2

'$列表[] = [X,Y,Z,...];'其是用於速記['array_push()'](http://php.net/manual/en/function .array-push.php) –

+1

要將元素添加到數組中,它的'$ list [] ='。使用'$ list。='用於* string * concating。 – Qirel

回答

1

.=用於連接字符串 - 不是數組。

你只需要使用;

$list[] = [ 
     (string)$open_payout->user_id, 
     (string)$open_payout->id, 
     (string)number_format($open_payout->amount/100000000, 8, '.', ''), 
     (string)$open_payout->user->withdraw_address, 
     (string)$open_payout->created_at, 
    ]; 

這會將您的新陣列添加到您的$list陣列的末尾。

您也可以使用array_push();

array_push($list, [ 
    (string)$open_payout->user_id, 
    (string)$open_payout->id, 
    (string)number_format($open_payout->amount/100000000, 8, '.', ''), 
    (string)$open_payout->user->withdraw_address, 
    (string)$open_payout->created_at, 
]);