It's highly unlikely the spindle needs to be replaced, unless the wheel bearing is damaged. They are pretty much indestructible.
Call some junk yards around, for Mazda 3's they usually sell front struts as a unit including caliper, rotor, hub, and the strut itself. A couple of years ago the price was around 250-300 bucks, now it should be even cheaper (if your car has ABS make sure you get the parts from a car that has ABS, and sport vs nonsport needs to match).
Look at Kijiji, very often there are Mazda 3 part outs by private sellers.
The front control arm is about 60 bucks (aftermarket). Assuming that nothing else needs to be replaced, the whole job should take no more than 2 hours + alignment.