str_replace ile yapamazsınız. preg_replace kullanın, aşağıdaki gibi:

$text = preg_replace('/-+/', '-', $text);