0

如果我有一个数组,例如

[Yellow] => 1 [Red] => 2 [Blue] => 3

然后想在带有 $options 的 INPUT 表单中使用这些来进行下拉选择,是否可以使用颜色名称 Yellow/Red/Blue 而不是值 1/2/3?

目前下拉菜单有 1, 2, 3 作为选项而不是名称。该数组在其他地方使用,并且出于某种原因采用格式。

4

1 回答 1

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);

通过这种方式,如果需要,您可以使用从表单传回的值作为原始数组的键

于 2013-05-30T11:22:39.103 回答