Один из вариантов - сделать немного того и другого.
Иметь отдельный массив параметров поля с именем поля в качестве ключа.
$fieldTypes = array('nameFirst' => 'name',
'nameLast' => 'name',
'phone' => 'phone',
'email' => 'email');
foreach($input as $key => $value) {
switch($fieldTypes[$key]) {
case 'name':
//run $value against name validation
break;
case 'phone':
//run $value against phone validation
break;
case 'email':
//run $value against email validation
break;
default:
//code here for unknown type
}
}
Теперь это можно использовать любым количеством способов, и его легко расширить, чтобы включить такие вещи, как, если поле требуется или нет, или даже сообщения об ошибках. Превратив массив $fieldTypes
в многомерный массив или массив объектов, содержащих данные.
Таким образом, если вы решите добавить поле, это, вероятно, не повлечет за собой больших изменений в коде проверки.