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;
}
}