What hook can access every field label at once and change the label of one? I am trying to change the display label of one field on a node (not the form), depending on the value set in another field in Drupal 7. I don't want to change the label in the database, just on the final node page when you view it, if another field is set to a certain value.

I tried a few different hooks with no luck. Some can access every field, but only the value and not the label. Some can access the label on a per field basis which I can get half working (Set a flag in another function if the field is set correctly) but that only worked if the fields are checked in the right order. 

So which painfully obvious hook will allow me to check a field setting and then edit the display of a label on another only on the node page? My perusing of the hook documentation and Google have not helped.

Thanks!
A guaranteed solution for all fields is hard. It depends on:


The field formatters you have chosen 
the template files used


For a general approach try:

/**
 * Implements hook_preprocess_HOOK().
 */
function YOUR_MODULE_preprocess_field(&amp;$variables) {
  if ($variables['element']['#field_name'] == 'YOUR_DEPENDENT_FIELD' &amp;&amp; !empty($variables['element']['#object']-&gt;YOUR_DEPENDENCY_FIELD)) {
    // YOUR LOGIC IN RELATION TO YOUR_DEPENDENCY_FIELD
    $new_value = 'something';
    $variables['label'] = $new_value;
  }
}


Notes: 


This will change the label display everywhere, not only on a
node display. Since you don't mention anything about view modes, I
guess the given solution is good enough.
Make sure you sanitize $new_value if you are showing user input.