The incident occurred shortly after 8:30 a.m. in the city of Winterthur, AP reports.
The three injured, aged 28, 43 and 52, have been taken to hospital for treatment, Swiss RTS reports.
One of them is seriously injured, according to Swiss media reports.
"The suspected perpetrator was arrested by the police," Zurich police announced.
The arrested person is said to be a 31-year-old Swiss man. The motive for the incident is being investigated.





