Php Drupal 7:选择下拉列表中不需要的字符

Php Drupal 7:选择下拉列表中不需要的字符,php,forms,drupal,option,Php,Forms,Drupal,Option,我需要的是一个默认为空的下拉列表。它有一个“-createnewclient-”字段,然后是一个客户端列表。以下是菜单字段的代码: $form['client']['existing'] = array( '#title' => t('Client'), '#type' => 'select', '#options' => array('add' => t('add new client'),$fullName), '#empty_option' =>

我需要的是一个默认为空的下拉列表。它有一个“-createnewclient-”字段,然后是一个客户端列表。以下是菜单字段的代码:

$form['client']['existing'] = array(
  '#title' => t('Client'),
  '#type' => 'select',
  '#options' => array('add' => t('add new client'),$fullName),
  '#empty_option' => '',
  '#description' => t('Select an existing Client or choose -create new client-'),
);
下面是我用来填充$fullName的函数:

function myForm_get_names()
{
  $query = db_select('client', 'c');
  $query->fields('c', array('cid','fname','lname'));
  $fullName = array();
  $result = $query->execute();

  foreach ($result as $r)
  {
    $fullName[$r->cid] = $r->fname . " " . $r->lname;
  }
  return $fullName;
}
这是$fullName的打印输出

array (
  1 => 'tim arthur',
  2 => 'val brant',
)
一切都很好。唯一的问题是它在-addnewclient-之后插入一个数字。所以看起来是这样的:

Client:
blank
-add new client-
0
  tim arthur
  val brant
我打印出了我的选项字段的值:

'#options' => array(
  'add' => 'add new client',
  0 => array(
    1 => 'tim arthur',
    2 => 'val brant',
  ),
),
如果我给-addnewclient-一个数值,这个数字就会增加。例如,如果我这样做:

'#options' => array ('5' => '-add new client-', $fullNames),
然后0变成了6

关于如何使数组不嵌套的任何想法。我也试过了,但出现了一个错误:

'#options' => array (
  'add' => '-add new client-', 
  array_keys($fullNames) => array_values($fullNames)), 

结果证明,解决方案非常简单。所以不是

'#options' => array('add' => t('add new client'),$fullName),
照办

'#options' => $fullName,
然后在我的myForm中,用get函数代替

$fullName = array();


不需要改变其他任何事情。h0tw1r3的阵列合并想法非常巧妙。

谢谢。这就解决了它!!!我会给你的答案打分,但我没有足够的rep。它确实显示正确,但没有将我的客户id作为值。它返回这个数组作为我的选项:array=>,'add'=>'-add new client-',0=>'val brant',1=>'tim arthur',2=>'bob adams',但我按姓氏排序,所以它的值应该是2,1,3
$fullName = array();
$fullName = array('add' => '-add new client-');