cakephp在表单输入选项中显示数组名称而不是变量

时间:2013-05-30 11:03:30

标签: arrays forms cakephp input

如果我有一个像

这样的数组
[Yellow] => 1 [Red] => 2 [Blue] => 3

然后想在表格INPUT中用$ options进行下拉选择,是否可以使用颜色名称黄色/红色/蓝色而不是值1/2/3?

目前,下拉列表中有1,2,3作为选项而不是名称。该数组在别处使用,并且格式有原因。

1 个答案:

答案 0 :(得分:1)

您可以使用array_flip方法交换

周围的键和值
$array = array('Yellow' => 1, 'Red' => 2, 'Blue' => 3);

$flippedArray = array_flip($array);

// => [1] => 'Yellow', [2] => 'Red', [3] => 'Blue'

然后使用flippedArray作为select元素中的选项,格式为helper

echo $this->Form->select('colours', $flippedArray);

或者您可以将颜色组合成选择元素的新数组

$combinedArray = array_combine(array_keys($array), array_keys($array));

//=> [Yellow] => 'Yellow', [Red] => 'Red', [Blue] => 'Blue'

echo $this->Form->select('colours', $combinedArray);

这样,如果需要,您可以使用从表单传回的值作为orignal数组的键