$ POST多维数组循环

时间:2010-08-11 21:05:36

标签: php arrays foreach multidimensional-array

所以我通过post函数创建了一个表单,向我发送了几个值。 $_POST[groups]使用4个不同的复选框值1,2,4和8发送给我。 $_POST[retailgroup]执行相同操作,但只执行值1,2和4。 问题是我希望这些加起来然后将值的总和发送到MySQL表。 我已经设法使用以下foreach循环来做一个:

foreach ( $_POST as $val ) {
    foreach ( $val as $key=>$final_val ) {
        $group = $group+$final_val;
    }
}

当我需要将这两者分开时,问题就开始了,因为它们会进入表中的不同列。

要清楚我已经为不同的组分配了不同的值(总是将prev值乘以2,就像计算二进制一样),如1,2,4和8.通过将它们加在一起,我可以通过执行确定组中的成员资格减法“向后”。由于存在不同类型的组,我希望它们分为表格的两个单独字段。

我希望一切都清楚。

关于如何做到这一点的任何想法?

3 个答案:

答案 0 :(得分:3)

你想用:

$groups_sum = array_sum($_POST['groups']);
$rgroups_sum = array_sum($_POST['retailgroups']);

在这种情况下,这比foreach循环更快更清晰。

答案 1 :(得分:0)

foreach ( $_POST[groups] as $key=>$final_val ) {
   //do stuff for first group
}
foreach ( $_POST[retailgroup] as $key=>$final_val ) {
   //do stuff for second group
}

之后你可以用从循环

获得的变量做任何你想做的事情

答案 2 :(得分:0)

$groups = array_sum($_POST['groups']);
$retailGroups = array_sum($_POST['retailgroup']);

您可以像这样检查会员资格,而不是向后减去:

$groupAdmin = 4;
if($groups & $groupAdmin) {
    // is admin
}