I actually had a similar desire of making arrays of analysis imps to support N interfaces. I finally didn’t go that route, but I was considering the following solution:
Wrap the analysis imp in a class (eg use or derive from a uvm_subscriber) and instantiate an array of those. You can declare an array of analysis exports and connect them in a loop to the N wrapper classes.