Well maybe I can help give a couple of examples...though I've not programmed in ages.
I think of arrays as almost like having an object number for a variable.
So you might have:
position object 1...
rotate object 2...
I might use a variable to organise my object numbers...so
PlayerObj = 1
EnemyObj = 2
...
So you get
position object PlayerObj...
rotate EnemyObj...
But you might have more than 1 player or enemy object...so you might do an array...(EnemyObj1, EnemyObj2 is pointless)
dim PlayerObj(2) (you have 2 players...so 2 player variables)
dim EnemyObj(10) (you've got 10 enemies)
so you might use a for loop:
for x = 1 to 2
playerObj(x) = x
next x
followed another
for x = playerObj(2)+1 to playerObject(2)+10 [Or 11...try both

]
EnemyObj(x-playerobj(2)) = x
next x
Maybe I made it look a little complicated. Basically - your playerObj() array will be "1" and "2". So playerObj(1) will carry the number '1' in its variable and playerObj(2) will carry '2', so you might use that variable to address Object 1 and 2.
For EnemyObj - you can't assign make "x= 1 to 10" because values '1' and '2' are taken up...it won't be a problem for the variables, but if you use "make object cube playerObj(1),50" and "make object cube enemyObj(1)" and both variables contain '1', then DBP will tell you that object 1 already exists. So the code needs to take that into account. So the first variable needs to be the one after 2...which is 3 or PlayerObj(2)+1. And the final number needs to be 10 more than that...to account for the fact we have 10 enemyObj array values.
Because 'x' will be from 3 to 13, but our array will only allow from up to 10...the 'x' in the array needs to account for this...so in the sum I've take away PlayerObj(2), but -2 would do the same.
Though bear in mind...I've not tested this code and it could total fail you...but I hope it helps anyway (if people see problems in the code, correct me - I don't have the time to play with it now)