Белый экран php при условии if ==

Выдает белый экран в

<?php $filter_type = 2; 
  $types= array(
    array(
    'value'=> '1',
    'title'=> 'title1',
    'group'=> 'group1',
    ),
    array(
    'value'=> '2',
    'title'=> 'title2',
    'group'=> 'group1',
    ),
    array(
    'value'=> '3',
    'title'=> 'title3',
    'group'=> 'group2',
    ),
  ); 
?>
<?php $optgroup = array(); ?>
<?php foreach ($types as $o) { ?>
    <?php if (!in_array($o, $optgroup)) { ?>
        <?php if ($o['group']) { ?>
            <optgroup label="<?php echo $o['group']; ?>">
            <?php } ?>
            <?php foreach ($types as $t) { ?>
                <?php if ($t['group'] == $o['group'] &&  !in_array($t, $optgroup)) { ?>
                    <option value="<?php echo $t['value']; ?>" <?php echo ($filter_type == $t['value'] ?  ' selected="selected"' : ''); ?>><?php echo $t['title']; ?></option>
                    <?php $optgroup[] = $t; ?>
                <?php } ?>
            <?php } ?>
            <?php if ($o['group']) { ?>
            </optgroup>
        <?php } ?>
    <?php } ?>
<?php } ?>

когда удаляю $t['group'] == $o['group'] Ошибка пропадает, на другом сервере все работает, в логах пусто, ошибок 0 В чем может быть проблема?

PS: Групирую селект по полю group, массив $types, поле есть везде, php 7.1


Ответы (1 шт):

Автор решения: Web Desg

if (!in_array($o, $optgroup))

В этой строке Вы ищете массив в пустом массиве, он его никогда не найдет так как он пуст.

Вы напишите какой результат Вам нужен.

→ Ссылка