How can I hide specific tabs in member view regardless of viewer permissions?
The $tabs variable passed into the tabs hook is an array of arrays, with unique identifying values in the "id" column of each entry.  I found a function to scan all elements of the array to check the "id" column for a given value.  This returns the correct $tabs index to use with the unset() function.

function searchForId($id, $array) {
  foreach ($array as $key =&gt; $val) {
    if ($val['id'] === $id) {
      return $key;
    }
  }
  return null;
}


Example usage:

$duestab = searchForId('custom_15', $tabs); //tab holding dues
unset( $tabs[$duestab] );


If my server used PHP 5.5 or greater, I could have skipped the searchForId function and used a one-liner:

$duestab = array_search('custom_15', array_column($tabs, 'id'));
unset( $tabs[$duestab] );