Drupal で、間隔を選ばせる方法(drupal_map_assoc)

Drupal で、Select ボックスを使ってユーザーに 15分、30分、1時間、3時間、6時間、12時間、1日・・・などと、フォームの中で時間間隔を選ばせたいときは、以下のようにする。

<?php $intervals = drupal_map_assoc(array(900, 1800, 3600, 10800, 21600, 43200, 86400), 'format_interval'); $form['interval'] = array( '#type' => 'select', '#options' => $intervals, '#title' => t('Interval), '#default_value' => variable_get('interval', 86400), '#required' => TRUE ); ?>

上のコードの1行目で、drupal_map_assoc という関数が特に重要で、この関数の引数にarray で示された間隔の値と書式の引数(この場合は format_inerval) を渡してあげると、 Select ボックス用の array が自動的に生成される。これは便利!