Is it zero- or one- indexed?
convey, 47 bytes
Returns 0 for neither, 1 for one-based, 2 for zero-based and 3 for unknown.
{2+~`0
?;\2:!2[
v^&lt;]`
?;\?+2
v^&lt; v*+}
!&gt;&gt;&gt;=?^
2

Try it online!
Run for 1 2 2 3 with index 2 and value 2:

On the left we split the input lines with ;\ ^&lt; into the three paths.
The first one pushes two zeroes after length of path + index time steps into the +. The second one path tries to push the array into + – if there are values waiting (the two zeroes), they get passed through unaltered. Otherwise, they get deleted ?]. The two values then get pushed into =, where they are compared to the third input. The result are two boolean bits. The second one gets multiplied by 2, then they get added together.