0

次のような配列がある場合

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

そして、$options を含むフォーム INPUT でこれらを使用してドロップダウン選択を行いたい場合、値 1/2/3 の代わりに色名 Yellow/Red/Blue を使用することは可能ですか?

現在、ドロップダウンには名前の代わりにオプションとして 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'

次に、フォームヘルパーを使用してselect要素のオプションとして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 に答える