Это вы хотели получить?
$fields_user_choice = array (
'[0] => Красный',
'[1] => Синий',
'[2] => Зеленый'
);
$replace = '';
$result = '';
$i = 0;
foreach($fields_user_choice AS $e)
{
if ($i != 0) {
$replace = ', ';
}
$result .= preg_replace('(\[.*?\]\s\=\>\s)', $replace, $e);
$i++;
}
// Выведет: Красный, Зеленый, Синий
echo $result
Только не понятно, почему у вас массив в виде строки?
Должно ведь быть :
$fields_user_choice = array (
[0] => 'Красный',
[1] => 'Синий',
[2] => 'Зеленый'
);
Тогда регулярки не нужны.