2011-07-21 4 views
0

複数のフィールドグループを追加することができるこのWebサイトで何が起こっているのかを模倣する:「別のカードを追加」をクリックすると、 - これはjqueryとclone()でカバーされています。ただし、同じ金額のギフトカードを2枚入力すると、次のステップでそれらのギフトカードの数量を1つのグループにまとめました。だからここに私が直面していたシナリオと私は見たい出力です:重複フィールドのグループを処理して共通フィールドキーで整理する方法 - PHP/Array

ユーザー入力:

Field Group 1 -- Amount: $100 Quantity: 1 
Field Group 2 -- Amount: $75 Quantity: 2 
Field Group 3 -- Amount: $100 Quantity: 1 

次のページ上の所望の出力:

$100 Gift Card Group: 2 
$75 Gift Card Group: 2 

私がしてきましたこれを行うさまざまな方法を探して何かを見つけることができない、助けてください!

+0

は($ _ POST)私たちますprint_r 'の結果を表示してください。上の'結果ページ。 –

答えて

0

入力に対しては、配列を処理しているので、[[]、quantity []などの名前を使用します。次のページで$ _POSTにprint_r()を実行し、foreach()ループを実行して同じ金種の数量を組み合わせることができます。

今、$ fooが$ _POST(クリーンアップ)されているとします。 前処理ループを実行して入力をクリーンアップしてください。例えば無効な金額/数量は必要に応じて破棄されます。これが完了すると

は、我々のような$ fooので終わる:

<?php 
// cleaned up $_POST 
$foo = array(
    'denomination' => array(100, 75, 100), 
    'quantity' => array(1, 2, 1), 
); 

$bar = array(); 
foreach ($foo['denomination'] as $d => $denomination) { 
    if (array_key_exists($denomination, $bar)) { // denomination exists 
     $bar[$denomination] += $foo['quantity'][$d]; 
    } else { // new denomination 
     $bar[$denomination] = $foo['quantity'][$d]; 
    } 
} 
print_r($bar); die; // debug 
?> 

出力は次のようになります。

Array(
    [100] => 2, 
    [75] => 2 
) 
+0

ご協力いただきありがとうございます - ここでは配列プリントが次のページに出力されます。私はどのようにグループ化し、それらを団結させることになるでしょうか? $ _POST [ '宗派']出力: アレイ ( [0] => 100 [1] => 75 [2] => 100 ) $ _POST [ '数量']出力: [1] => 2 ( [1] => 2 ) – tim

+0

HTH、cheeers Wayne。 – Wayne

+0

あなたは素晴らしいです!どうもありがとうございます! – tim

関連する問題