He hecho un ejemplo para que lo veas más claro.
Fichero index.php: Código PHP:
<?php
function operacion_and($a, $b) {
if ($a != '1' && $a != '0') return -1;
else if ($b != '1' && $b != '0') return -1;
else {
if ($b == '1') return $a;
else return 0;
}
}
?>
<html>
<head>
<title>Operación AND</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<?php
if ($_POST['boton_enviar'] == 'Enviar') {
for ($i = 0; $i < 6; $i++) {
$campo = "cb" . ($i + 1);
if ($_POST[$campo] == 'on') $cb = '1';
else $cb = '0';
echo $cb;
if ($i == 5) echo " -> Vector de categorías elegidas<br />";
}
$mascara = $_POST['mascara'];
if (strlen($mascara) != 6) echo "<br /><b>Longitud de la máscara incorrecta.</b><br />";
else {
$salir = 0;
for ($i = 0; $i < 6 && !$salir; $i++) {
if ($mascara[$i] != '0' && $mascara[$i] != '1') {
$salir = 1;
echo "<br /><b>La máscara sólo puede estar formada por 0 y 1.</b><br />";
}
}
if (!$salir) {
for ($i = 0; $i < 6; $i++) {
echo $mascara[$i];
}
echo " -> Máscara de categorías<br />";
echo "-------------------------------------------<br />";
for ($i = 0; $i < 6; $i++) {
$campo = "cb" . ($i + 1);
if ($_POST[$campo] == 'on') $cb = '1';
else $cb = '0';
$aux = operacion_and($cb, $mascara[$i]);
echo $aux;
}
echo " -> Resultado operación AND<br /><br />";
echo "Significa que de las categorías indicadas por la máscara, el usuario ha elegido
las indicadas por el resultado<br />";
}
}
}
else {
echo "
<form action='index.php' method='post'>
Elija las categorías que desee:<br /><br />
<input type='checkbox' name='cb1' />Categoría 1<br />
<input type='checkbox' name='cb2' />Categoría 2<br />
<input type='checkbox' name='cb3' />Categoría 3<br />
<input type='checkbox' name='cb4' />Categoría 4<br />
<input type='checkbox' name='cb5' />Categoría 5<br />
<input type='checkbox' name='cb6' />Categoría 6<br /><br />
Máscara de categorías: <input type='text' name='mascara' /><br />(Ejemplo: 100110)<br /><br />
<input type='submit' value='Enviar' name='boton_enviar' />
</form>
";
}
?>
</body>
</html>
Espero que te sirva.