The fix is fully ok. However, `$subst` is lost in that long union operation, which makes it hard to understand everything at a glance. Thus for the purpose of readability it may make sense to separate it as follows:
```
$germanReplacements = array(
    196 => 'Ae', 228 => 'ae', 214 => 'Oe', 246 => 'oe', 220 => 'Ue', 252 => 'ue'
);
$subst = $germanReplacements + $subst;
```

However, it is not required at all.