They are really both loops, doing the same thing. ->mapWithKeys() is a loop.
So, for me, it comes down to whatever is shortest, AND most clear, AND most efficient. I'd go with option 1 in this case.
It takes slightly longer and uses slightly more resources to create a collection just so you can iterate over it, when you can just iterate over the original array without converting it first.