Белый экран 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))
В этой строке Вы ищете массив в пустом массиве, он его никогда не найдет так как он пуст.
Вы напишите какой результат Вам нужен.