There is nothing wrong with using single quotes to refer to array keys. The confusion here seems to be arising from the use of the $ symbol in front of the word variable.
Some examples:
#1 - [FONT=Courier New]$POST['variable'][/FONT] refers to the value corresponding to the key 'variable'
#2 - [FONT=Courier New]$POST['$variable'][/FONT] refers to the value corresponding to the key '$variable'
#3 - [FONT=Courier New]$POST["variable"][/FONT] is essentially the same as #1
#4 - [FONT=Courier New]$POST["$variable"][/FONT] refers to the field with the same name as the VALUE of $variable, eg. if $variable = 'varname', then $_POST["$variable"] will refer to the value corresponding to the key 'varname';
Another example:
[FONT=Courier New]$data = array(
'color' => 'red',
'length' => 10,
'$field' => 'value'
);
$field = 'length';
echo $data['color'] . ' ';
echo $data['$field'] . ' ';
echo $data["$field"] . ' ';[/FONT]
will print:
[FONT=Courier New]red value 10[/FONT]
The key difference between single and double quotes is that double quotes allow you to use the backslash to escape characters such as \r (carriage return), \n (newline), \t (tab), etc, and interpolate variables "Hello $firstname". Single quotes are simpler to use (and have less overhead) but don't have any of those fancy features.
And as laserlight already mentioned, check out the strings page in the PHP Manual. It has a lot of useful information on the topic.
Ryan