Я тоже боролся с этим,
У меня было это:
$user = array('a'=>'alber', 'b'=>'brad'...);
$array_name = 'user';
и мне было интересно, как попасть в Альберта.
сначала я попробовал
$value_for_a = $$array_name['a']; // this dosen't work
тогда
eval('return $'.$array_name['a'].';'); // this dosen't work, maybe the hoster block eval which is very common
тогда, наконец, я попробовал глупость:
$array_temp=$$array_name;
$value_for_a = $array_temp['a'];
и это просто сработало отлично!
мудрость, делай это просто, делай это глупо.
Я надеюсь, что это отвечает на ваш вопрос