2017-02-15 64 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