The brackets will add all the checked values to a sub-array of the $POST or $GET array. Without the brackets, you will only have one scalar value, which will probably be that of the last checkbox in the form that is checked.
Try this little script and see the difference:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang='en'>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1'>
<title>Untitled</title>
</head>
<body>
<form action="" method="post">
<h3>No brackets:</h3>
<p>
<label><input type="checkbox" name="plain" value="1">1</label>
<label><input type="checkbox" name="plain" value="2">2</label>
<label><input type="checkbox" name="plain" value="3">3</label>
<p>
<h3>With Brackets:</h3>
<p>
<label><input type="checkbox" name="bracket[]" value="1">1</label>
<label><input type="checkbox" name="bracket[]" value="2">2</label>
<label><input type="checkbox" name="bracket[]" value="3">3</label>
<p>
<p><input type="submit" name="submit" value="Submit"></p>
</form>
<?php
if(isset($_POST['submit']))
{
echo "<pre>\$_POST array:\n".print_r($_POST,1)."</pre>\n";
}
?>
</body>
</html>