Php 关于按位运算符和foreach循环的指南

Php 关于按位运算符和foreach循环的指南,php,foreach,bit-manipulation,Php,Foreach,Bit Manipulation,我计划制作一个动态复选框表单,将每个帖子绑定到一个特定的按位值,并意外地计算按位数字的总数。我想不出什么好办法。有人能指引我吗 <html> <head></head> <body> <form method="post" action="test.php"/> <?php $fields = array('writePost','readPost','deletePost','addUser',

我计划制作一个动态复选框表单,将每个帖子绑定到一个特定的按位值,并意外地计算按位数字的总数。我想不出什么好办法。有人能指引我吗

<html>
<head></head>
<body>
<form method="post" action="test.php"/>
<?php

    $fields = array('writePost','readPost','deletePost','addUser',
                      'deleteUser'); 

    $perms = array(
        'writePost' => 1,
        'readPost' => 2,
        'deletePost' => 4,
        'addUser' => 8,
        'deleteUser' => 16
  );

    $results = array();



     foreach($fields as $field)
     {
          echo "<input type='checkbox' name='".$field."' value='".$field."' />";
          echo "<label for='".$field."'>".$field."</label>";
          echo "<br/>";

     }

 if(isset($_POST['submit']))
 {
     foreach($_POST as $posts)
     {
       $posts = $results;

          //
          $total_key = 0;
          $array_key = 1;

          foreach ($perms as $key)
          {

            if (!$key=='read')
              {
              $array_key = $array_key*2;
              }else{
              $array_key  = $array_key+$total_key;
            }

            foreach ($posts as $perms)
            {

              $array_key = $post;
            }

        }
    }

    var_dump($results);

}

var_dump($fields);

?>
<input type="text" name="name" value="name"/>
<input type="submit" name="submit" value="submit"/>
</form>
</body>
</html>

我认为您希望输入的值是数字而不是字段名:

echo "<input type='checkbox' name='nums[]' value='".$perms[$field]."' />";

但实际上,如果您希望以一种不太容易混淆的方式进行设置,您可以将选中的值放入一个数组中,然后检查它们是否是在PHP中设置的。

您的描述和代码都没有告诉我们您试图在这里实现什么。
$n = sizeof($perms)-1;
$total = array_sum($_POST['nums']);
for($i=$n;$i>0;$i--)
{
    $pow = pow(2, $i);
    if ($pow > $total)
    {
        //$fields[$i] is checked
        $total-=$pow;
    }
}