title: PHP isset() returning false when should return true?
body: <p>Alright... so on my forms, I am setting all the fields to something like this:</p>
  
  <p><code>name="formdata['name']"</code> and <code>name="formdata['active']"</code>.</p>
  
  <p>Of course, that means whatever is entered in those fields should be stored in <code>$_POST['formdata']['name']</code> and <code>$_POST['formdata']['active']</code>.</p>
  
  <p>I do my values that way because I pass the 'formdata' to a couple of functions I have written (which work as they should.) Now let's say I'm using this to edit an item or add a new item -- the name will go through those functions as it should and the item will save with its name, but 'active' will never save as it should. The entry field is a checkbox -- if it's checked, the value is "1".</p>
  
  <p>If I <code>print_r($_POST['formdata'])</code> after entering 'Name' and checking 'active', I get this: <code>Array ( ['name'] =&gt; Name ['active'] =&gt; 1 )</code>.</p>
  
  <p>Looks fine, right? But when I do the following:</p>
  
  <pre><code>if (!isset($_POST['formdata']['active']) echo "Error 1";
  if (empty($_POST['formdata']['active']) echo "Error 2";
  if ($_POST['formdata']['active'] != 1) echo "Error 3";
  </code></pre>
  
  <p>They all return errors! I am baffled by this. Am I overlooking something very simple? I have thought about this for at least 2 hours now.</p>