У меня была такая же ошибка в другом сценарии
<ItemsControl ItemsSource="{Binding TableList}">
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl>
. Решением было добавить тег ItemsControl.ItemsPanel
до ItemsPanelTemplate
<ItemsControl ItemsSource="{Binding TableList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
Вы пропустили блок else. После этого кода:
if(is_array($value)) {
echo '<',$value,'>',htmlentities($value),'</',$value,'>';
........
}
добавить это:
} else {
echo $value;
}
Также я бы рекомендовал написать рекурсивную функцию, чтобы иметь возможность использовать массивы любой глубины.