OK, some vocab.
#define sensorPins[0] 14
(this is a macro definition)
Here, I assume you're trying to tell your sketch that there's an array called "sensorPins", and element zero has the value 14.
At some point, I assume, you're going to set the pinMode of pin 14 to be INPUT.
So, I search your sketch (as you could have done) for the string "sensorPins", but apart from the five other similar macro definitions, there are no occurrences of the string "sensorPins", so you never use it anywhere.
Instead, you confuse the pin a sensor is attached to with the value you're eventually going to read from that sensor.
// Sensor array
int sensor[6];
and
pinMode(sensor[0],INPUT);
pinMode(sensor[1],INPUT);
pinMode(sensor[2],INPUT); // etc
But you haven't given the elements of the array "sensor" any values, so, because "sensor" has global scope, the compiler has kindly assigned the value zero to all of its elements. So, you're setting the pinMode of pin zero to be INPUT six times.
Similar, but subtly more dangerous situation with the solenoids, you have macros for the pins but never use them.
However:
int solenoid[5];
pinMode(solenoid[1],OUTPUT);
pinMode(solenoid[2],OUTPUT);
pinMode(solenoid[3],OUTPUT);
pinMode(solenoid[4],OUTPUT);
pinMode(solenoid[5],OUTPUT);
The array "solenoid" has five elements with subscripts 0, 1, 2, 3 and 4, and again the compiler has helpfully set all the elements
that it knows about to zero.
But then, you invent a sixth element (no doubt starring Bruce Willis), retrieve it value (do you know what it is? I don't), and set the corresponding pin's mode to be an OUTPUT.
sol_run_time[1] = 20;
sol_run_time[2] = 20;
sol_run_time[3] = 20;
sol_run_time[4] = 20;
sol_run_time[5] = 20;
Ditto.
//#define setRTC
#ifdef setRTC
Don't even think about removing the // comment marks off that macro definition.
int i = x;
int reading;
int TTG;
int time_up;
TTG = sol_run_time[i];
time_up = timer(TTG);
is bad for the eyes.
int i = x;
int TTG = sol_run_time[i];
int time_up = timer(TTG);
is shorter and easier on the eyes.