Show exposed filter entry with match number I want to have some view filter like this one for example.  


I want a list of option [a select..] with the number of results they provide.

Can I do this in some way?
It can be achieved with the help of hook_form_alter(). 

You just need to override the $form['type']['#options'] 

Example

An exposed filter with content types and the number of nodes attached to each select option.

/**
 * Implements hook_form_alter
 */
function YOURMODULE_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  switch($form['#id']) {
    case 'views-exposed-form-[YOUR-VIEW-NAME]-page':
      foreach ($form['type']['#options'] as $option =&gt; $name) {
        if ($option != 'All') {
          $query = "SELECT COUNT(*) amount FROM {node} n "."WHERE n.type = :type AND n.status=1";
          $result = db_query($query, array(':type' =&gt; $option))-&gt;fetch();
          $name.= ' (' . $result-&gt;amount . ')';
          $form['type']['#options'][$option] = $name;
        }
      }
    break;
  }
}


If you don't want to run the query every time when the filter is being displayed, then you need to create a variable with these numbers. The query might be then performed only once, during your module installation, and the variable would be updated only when the node will be created, updated or deleted.

An example with the custom variable

Custom function to create or update our custom variable.

function update_node_numbers() {
  $node_numbers = array();
  $node_types = node_type_get_types();
  foreach ($node_types as $type =&gt; $object) {
    $query = "SELECT COUNT(*) amount FROM {node} n "."WHERE n.type = :type AND n.status=1";
    $result = db_query($query, array(':type' =&gt; $object-&gt;type))-&gt;fetch();
    $node_numbers[$object-&gt;type] = $result-&gt;amount;
  }
  // set variable
  variable_set('node_numbers', $node_numbers);
}


The function should be fired only during administrative tasks (install module, create, update or delete node)

/**
 * Implements hook_install.
 */
function YOURMODULE_install() {
  update_node_numbers();
}

/**
 * Implements hook_uninstall.
 */
function YOURMODULE_uninstall() {
  variable_del('node_numbers');
}

/**
 * Implements hook_node_insert.
 */
function YOURMODULE_node_insert($node) {
  update_node_numbers();
}

/**
 * Implements hook_node_update.
 */
function YOURMODULE_node_update($node) {
  update_node_numbers();
}

/**
 * Implements hook_node_delete.
 */
function YOURMODULE_node_delete($node) {
  update_node_numbers();
}


Now we can alter the form with the help of our custom variable, without using any query.

/**
 * Implements hook_form_alter.
 */
function YOURMODULE_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  switch($form['#id']) {
    case 'views-exposed-form-[YOUR-VIEW-NAME]-[DISPLAY-ID]':
      $node_numbers = variable_get('node_numbers');   
      foreach ($form['type']['#options'] as $option =&gt; $name) {
        if ($option != 'All') {
          // some options may have been just created.
          if (!isset($node_numbers[$option])) {
            $node_numbers[$option] = 0;
          }
          $name.= ' (' . $node_numbers[$option] . ')';
          $form['type']['#options'][$option] = $name;
        }
      }
    break;
  }
}