foreach のリファレンス渡しは基本的に避けるほうが良い
配列の中身を変更するんだったら別の配列に一度入れてから上書きするといいよ
array_map()とか使うと配列を処理して上書きしてんだな。ってわかりやすい

別解
$prices = array_map(fn($str) : int => sscanf($str, '%u円')[0], $prices);