简单来讲,这个函数就是将一个线性数组转换为key=>value数组。所谓线性数组就是类似array('hello','world');这样的数组,而键值数组就是类似array('key1'=>'hi','key2'=>'ok')的数组。drupal_map_assoc($array, $function = NULL)有两个参数,前面一个参数是你要转换的数组,后一个是指定转换规则的函数,如果不指定的话则简单地将原数组的值作为新数组的键,函数的返回值是转换后的新数组。这么说可能有点不好懂,我们来做个实验吧:
<?php /** * @file * 测试几个drupal的API专用 */ /** * Implements hook_menu(). * 让用户在首页看到这个模块 */ function test_menu() { $items['test'] = array( 'title' => t('Run My Drupal Code'), 'page callback' => 'drupal_get_form', 'page arguments' => array( 'test_form' ), 'access callback' => TRUE, 'type' => MENU_NORMAL_ITEM ); return $items; } function test_form($form, &$form_state) { $oriarr = array( t('Study Room'), t('Small Conference Room'), t('Board Room') ); $arr = drupal_map_assoc($oriarr); krumo($oriarr); krumo($arr); $form['html'] = array( '#type' => 'markup', '#markup' => 'My Heading' ); return $form; }
最后的结果: