2017-01-27 13 views
-1

私はフォームから送信された選択されたチェックボックス( `checkbox [$ id])に基づいてidの配列を作成するforeachを持っています。 :既存の配列に値の配列を追加する

チェックボックスを選択する場合は1、2及び3は、今私はまた私のフォームに入力フィールド amount[$id]を持つフォームから送信IDがされているこれまでのところは良い

Checkboxes

。。。その行の金額を入力して結果を提出することができます。もしidの場合はamountの値を配列に追加する必要があります。 SULTは、次のようになります。

[1 => ['amount' => '10'], 2 => ['amount' => '12'], 3 => ['amount' => '5'] // And so on 

を私がマージしようとした、とarray_pushが、私はそれを把握することはできませんので、私は、間違ったことをやっているように見えます。すべてのポインタ?

+1

おそらく 'array_combine'を使用していますか? – Hackerman

+0

決してそれを使用して、それは私が推測する必要があります!ありがとう:) – Hardist

+0

私は助けてうれしいです:) – Hackerman

答えて

1

このような何かが動作するはずです:

$result = []; 
$ids = [1,2,3]; // I suppose it is `$_POST['ids']` 
$amounts = [1 => 10, 2 => 11, 3 => 22]; // I suppose it is `$_POST['amount']` 
foreach ($ids as $id) { 
    if (!empty($amounts[$id])) { 
     $result[$id] = ['amount' => $amounts[$id]]; 
    } 
} 

をコメントでアドバイスとしてarray_combineを使用するには、配列のサイズが等しい場合にのみ使用することができます。配列として値を作成することはありませんarray_combine -

$ids = [1,2,4]; 
$amounts = [1 => 10, 2 => 11, 3 => 0, 4 => 22]; 
print_r(array_combine($ids, $amounts)); // PHP Warning 

そして第二に事実:だからあなたのようなものを持っている場合。したがって

$ids = [1,2,3]; 
$amounts = [1 => 10, 2 => 11, 3 => 10]; 
print_r(array_combine($ids, $amounts)); // no subarrays here 
+0

ありがとう、' array_combine'で動作するようにしようとしていましたが、代わりにこの方法を使用して動作するかどうかを確認すると、より良い解決策のように思えます。 – Hardist

+0

laravelでそれを使用して、いくつかの微調整で魅力的なように働いた。ニースの解決策! – Hardist

関連する問題