You can do this in zsh using a so-called glob qualifier (see section Glob Qualifiers in the zshexpn man page):
For the explanation I quote the manual:
P string The string will be prepended to each glob match as a
separate word. string is delimited in the same way as arguments to
the e glob qualifier described above. The qualifier can be repeated;
the words are prepended separately so that the resulting command
line contains the words in the same order they were given in the list
of glob qualifiers.
A typical use for this is to prepend an option before all occurrences
of a file name; for example, the pat‐ tern
*(P:-f:) produces the
command line arguments
-f file1 -f file2 ...
If the modifier ^ is active, then string will be appended instead of
prepended. Prepending and appending is done independently so both
can be used on the same glob expression; for example by
*(P:foo:^P:bar:^P:baz:) which produces the command line
foo baz file1 bar ...
To be cautious, check first with
$ print ./some-script.sh *.txt(P:-a:)
./some-script.sh -a foo.txt -a bar.txt -a baz.txt
if you get the desired result.