eu acho que o problema pode ser que você não tenha escapado do () pela mídia = parte - também x você poderia ter usado 'em vez de' dessa forma o () não teria sido interpretado como estrutura php mas sim como texto dados.
eu não sei porque, mas para mim é muito mais legível quando eu escrevo assim:
<?php
foreach ($type as $pictData['types']) {
echo "<source media='(min-width: ".$size."px)'";
echo "sizes=''";
echo "srcset='".$pictData['names'][$type][$size]."'";
echo "type='".$type."'>";
}
?>
você também deve dar uma olhada na linha de frente, acho que deveria ser o contrário:
foreach ($pictData['types'] as $type) {
em vez de ...
foreach ($type as $pictData['types']) {