Yes this is possible. You declare uniform arrays similar to how you’d do it in C, e.g.
uniform float v[10];
Then you can set their values using glUniform{1,2,3,4}{f,i}v
GLfloat v[10] = {...};
glUniform1fv(glGetUniformLocation(program, "v"), 10, v);