title: PHP: Can an array have an array as a key in a key-value pair?
body: <p>I'm getting an "Illegal offset type" for this array:</p>
  
  <pre><code>public static $CATS_AND_TYPES = array(
  
          // Statement Administration
          array( self::CAT_STATEMENT_ADMIN =&gt; "Document Administration" ) =&gt; array(
              self::TYPE_STATEMENTS_LOADED =&gt; "Documents Loaded",
              self::TYPE_STATEMENTS_REMOVED =&gt; "Documents Removed"
          ),
  
          // Cron Jobs
          array( self::CAT_CRON_JOBS =&gt; "Cron Jobs" ) =&gt; array(
              self::TYPE_CRON_BULLETIN_RUN =&gt; "Bulletin Cron Job Ran",
              self::TYPE_CRON_EMAILER_RUN =&gt; "Emailer Cron Job Ran",
              self::TYPE_CRON_SURVEY_RUN =&gt; "Survey Cron Job Ran",
              self::TYPE_CRON_JOURNEY_RUN =&gt; "Journey Cron Job Ran",
              self::TYPE_CRON_DOCUMENT_RUN =&gt; "Document Cron Job Ran"
          ),
  
          // Global Administration
          array( self::CAT_GLOBAL_ADMIN =&gt; "Global Administration" ) =&gt; array(
              self::TYPE_GLOBAL_MAINTENANCE =&gt; "Global Maintenance",
              self::TYPE_GLOBAL_EMAIL_SENDING =&gt; "Email Sending"
          ),
  
          // Email Administration
          array( self::CAT_EMAIL_ADMIN =&gt; "Email Administration" ) =&gt; array(
              self::TYPE_EMAIL_SENT =&gt; "Email Sent",
              self::TYPE_EMAIL_RESENT =&gt; "Email Resent",
              self::TYPE_EMAIL_REMOVED =&gt; "Email Removed"
          ),
  
          // DCVs Administration
          array( self::CAT_DCVS_ADMIN =&gt; "DCVs Administration" ) =&gt; array(
              self::TYPE_DCVS_FLEX_UPDATED =&gt; "Flexible Variables Updated",
              self::TYPE_DCVS_GLOBAL_UPDATED =&gt; "Global Variables Updated"
          ),
  
          // Video Administration
          array( self::CAT_VIDEO_ADMIN =&gt; "Video Administration" ) =&gt; array(
              self::TYPE_VIDEO_ADDED =&gt; "Video Added",
              self::TYPE_VIDEO_EDITED =&gt; "Video Edited",
              self::TYPE_VIDEO_REMOVED =&gt; "Video Removed"
          ),
  
          // Bulletin Board Administration
          array( self::CAT_BULLETIN_BOARD =&gt; "Bulletin Board Administration" ) =&gt; array(
              self::TYPE_BULLETIN_DELETED =&gt; "Message Deleted",
              self::TYPE_BULLETIN_EDITED =&gt; "Message Edited",
              self::TYPE_BULLETIN_ADDED =&gt; "Message Added"
          ),
  
          // User Administration
          array( self::CAT_USER_ADMIN =&gt; "User Administration" ) =&gt; array(
              self::TYPE_USER_ADDED =&gt; "User Added",
              self::TYPE_USER_ADDED_MULTI =&gt; "Multiple Users Added",
              self::TYPE_USER_REMOVED =&gt; "User Removed",
              self::TYPE_USER_REMOVED_MULTI =&gt; "Multiple Users Removed",
              self::TYPE_USER_UPDATED =&gt; "User Updated"
          ),
  
          // Survey Administration
          array( self::CAT_SURVEY_ADMIN =&gt; "Survey Administration" ) =&gt; array(
              self::TYPE_SURVEY_ADDED =&gt; "Survey Added",
              self::TYPE_SURVEY_UPDATED =&gt; "Survey Updated",
              self::TYPE_SURVEY_REMOVED =&gt; "Survey Removed",
              self::TYPE_SURVEY_REMOVED_MULTI =&gt; "Multiple Surveys Removed"
          )
      );
  </code></pre>
  
  <p>it's kind of annoying to make another array just to define what is being defined in the keys here, so i was wondering if that was my problem. if it is, i guess i'll have to make a key-value array for the categories ids and string values.</p>
  
  <p>thanks!</p>