2017-02-15 68 views
0

我想將新成員追加到數組中的元素。沒有數組,寫起來很簡單。例如:將新成員添加到數組中的變量

$exp["app_form_id"] = $form_id; 

但是,當我要添加新成員「app_form_id」到數組的所有對象時,它無法插入他們,同時也有沒有跟他們任何錯誤。我試圖通過2路做到這一點,但他們沒有沒有奏效:

1)

foreach ($exps as $exp) { 
     $exp["app_form_id"] = $form_id; 
    } 

2)

for ($i = 0; $i < count($exps); $i++) { 
     $exps[i]["app_form_id"] = $form_id; 
    } 
+0

爲$ exp爲對象? –

+0

你可以發佈,如果有任何錯誤?並更新您的問題 – rahulsm

+0

$ exps是一個數組,我從$ _POST –

回答

2

如果你通過by reference&)你#1的方法將工作:

foreach ($exps as &$exp) { 
    $exp["app_form_id"] = $form_id; 
} 
+0

謝謝。有效。所以我的問題是由ref類型在這裏。 –

+1

如果您不需要保持基本陣列的狀態,那麼它是非常好的答案。 – C2486

+0

@Rishi是的。我認爲這是更好的答案。也謝謝你 –

1

不管你在裏面塊改變僅限於該塊,而不是改回,試着像這樣

$newExps = array(); 
foreach ($exps as $exp) { 
    $exp["app_form_id"] = $form_id; 
    $newExps[] = $exp; 
} 
print_r($newExps); 
+0

得到它的工作!但爲什麼我的方法不起作用? –

+1

您的更改僅限於foreach塊,@BizzyBob答案也可以使用。 – C2486

1

嘗試這樣,

foreach ($exps as &$exp) { 
     $exp->app_form_id = $form_id; 
} 

我覺得你正在用對象進行操作。

試一試,它應該工作。

+0

不像我的工作! –

+0

我沒有在你的答案中考慮過'&$ exp'。您的答案ID也正確。謝謝。 –

+0

呵呵,我的壞話呢,無論如何歡迎 – rahulsm