$ ages2 не является массивом, поэтому то, что вы пытаетесь здесь, не сработает напрямую, но вы можете преобразовать строку с этой структурой в массив следующим образом:
$ages2 = '"Peter"=>32, "Quagmire"=>30, "Joe"=>34';
$items = explode(",", $ages2);
foreach ($items as $item) {
list($key,$value) = explode('=>',$item);
$key = str_replace('"','',trim($key)); // Remove quotes and trim whitespace.
$array[$key] = (int)$value;
}
Если вы var_dump($ массив), у вас будет:
array(3) {
["Peter"]=>
int(32)
["Quagmire"]=>
int(30)
["Joe"]=>
int(34)
}
Так что вы можете сделать это, как ожидалось, и получить 32 обратно:
echo $array['Peter']