如何处理重复字段的组和组织共同的字段键- PHP / Array

How to process groups of duplicate fields and organize by common field key - PHP / Array

本文关键字:字段 PHP Array 处理 何处理      更新时间:2023-09-26

希望模仿这个网站上发生的事情,您可以在其中添加多个字段组:当您单击"添加另一张卡"时,它会复制字段-我已经用jquery和clone()覆盖了这一点。然而,如果你输入两张相同数量的礼品卡,下一步他们会将这些礼品卡的数量合并到一个组中。下面是我面对的一个场景和我想看到的输出:

用户输入:

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

我一直在寻找不同的方法来做到这一点,但找不到任何东西,请帮助!

对于输入,我将使用像denomination[], 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
)