Hey Michael,
So sollte es genauso gehen, wie Du wolltest

Ich musste allerdings noch ein paar Modifikationen im Gegensatz zu meiner Ursprungsfassung machen, dafür habe ich das ganze etwas weiter kommentiert
Code:
<?php
// "globaler" Standardwert, den zunächst grundsätzliche alle
// Felder erhalten sollen
$globalDefaultValue = 'Standardwert';
// Assoziatives Array
// Es enthält zunächste _alle_ "Produkt"-Felder
// Wo ein abweichender Standardwert existiert für ein Feld,
// wird dieser mit 'feld' => 'wert' angegeben, ansonsten 'feld' => null
$productFields = array(
'name' => 'Name',
'desc' => null,
'key' => 'Hubba',
'foo' => null,
'bar' => null,
'lolli' => null,
'pop' => 'Bubba');
$categoryFields = array(
'name' => 'ajsdbv',
'kuckuck' => 'jsgad',
'feldMitStandardWert' => null);
// Zum Testen wird hier einfach "Produkt" als Modell festgelegt.
$model = "Produkt";
switch ($model){
case 'Produkt':
foreach($productFields as $fieldName => $customDefault){
// Standardwert ist der "globale", falls der "abweichende" Standard-
// wert im Felder-Array mit "null" angegeben wurde.
$defaultValue = $customDefault != null ? $customDefault : $globalDefaultValue;
echo "$fieldName: $defaultValue
";
}
break;
case 'Kategorie':
foreach($categoryFields as $fieldName => $customDefault){
// Standardwert ist der "globale", falls der "abweichende" Standard-
// wert im Felder-Array mit "null" angegeben wurde.
$defaultValue = $customDefault != null ? $customDefault : $globalDefaultValue;
echo "$fieldName: $defaultValue
";
}
break;
}
?>
Viele Grüße