【问题标题】:cakephp display array name in form input options instead of variablecakephp 在表单输入选项中显示数组名称而不是变量
【发布时间】:2013-05-30 11:03:29
【问题描述】:
如果我有一个数组,例如
[Yellow] => 1 [Red] => 2 [Blue] => 3
然后想在带有 $options 的表单 INPUT 中使用这些来进行下拉选择,是否可以使用颜色名称 Yellow/Red/Blue 而不是值 1/2/3?
目前下拉菜单有 1、2、3 作为选项而不是名称。该数组在其他地方使用,并且出于某种原因采用格式。
【问题讨论】:
标签:
arrays
forms
cakephp
input
【解决方案1】:
您可以使用array_flip 方法来交换键和值
$array = array('Yellow' => 1, 'Red' => 2, 'Blue' => 3);
$flippedArray = array_flip($array);
// => [1] => 'Yellow', [2] => 'Red', [3] => 'Blue'
然后将 flippedArray 用作带有表单助手的选择元素中的选项
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);
如果需要,您可以使用从表单传回的值作为原始数组的键