Как я понимаю из этой части кода:
foreach($this_positions as $key=>$value){
if(isset($value)){
if($_GET['position']==$key){
Ты берешь ключ, а он, видимо, равен 0, тогда как переменной
$_GET['position']
нет, значит она равна
null
.
Перепишем твою проверку
$_GET['position']==$key
, заменяя результат, получается:
null == 0
Null в данном случае преобразуется в тип
bool (false), так же и
0 - false. То есть получается проверка
false == false
Чтоб уйти от этой ошибки, тебе надо делать проверку с сравнением типов
$_GET['position']===$key
Вот тут можешь почитать подробнее: