Easily Determine if Field Is Required
You can make use of Field Info API functions to get this information. 

Since the 'required' setting is on the instance level, not the field level, you'll need to use either field_info_instances(), which will get the instance information for all fields attached to a given entity type and bundle:

$entity_type = 'node';
$bundle = 'article';

$info = field_info_instances($entity_type, $bundle);
foreach ($info as $field_instance) {
  $required = (bool)$field_instance['required'];
}


or alternatively, if you only want the info for a single field, the field_info_instance function:

$entity_type = 'node';
$bundle = 'article';
$field_name = 'field_my_field';

$info = field_info_instance($entity_type, $field_name, $bundle);
$required = (bool)$info['required'];