Yii-CHtml::dropDownList。不同标签下的相同值

Yii-CHtml::dropDownList。不同标签下的相同值,yii,html-select,Yii,Html Select,在我面对一个问题之前,一切都很好。我有一个数组,看起来像这样: CHtml::dropDownList('name','select',$listData,$htmlOptions); array( array('ua', 'Ukraine', '380'), array('ru', 'Russia', '7'), ... array('kz', 'Kazakhstan', '7'), ); $listData是(值=>标签)的数组。首先,我遍历了数组,并将(code

在我面对一个问题之前,一切都很好。我有一个数组,看起来像这样:

CHtml::dropDownList('name','select',$listData,$htmlOptions);
array(
    array('ua', 'Ukraine', '380'),
    array('ru', 'Russia', '7'),
...
    array('kz', 'Kazakhstan', '7'),
);
$listData
是(值=>标签)的数组。首先,我遍历了数组,并将(code=>country)数组作为$listData生成。但我发现不同的国家可能有相同的代码。我可以使用第一个“两个字母的geo”作为键,
$listData
将是一个唯一的数组。 如果我需要相同的值,但标签不同,该怎么办


似乎唯一的Yii解决方案是在一个键(值)下连接标签。
或者使用纯html并单独回显每个选项。

我认为明智的做法是使用新模型,使用新id(INTEGER主键自动递增),并将数据保存在单独的字段(国家、地理位置、代码)中

仅使用新id和国家/地区将listdata创建为一个数组,使数组如下所示:

CHtml::dropDownList('name','select',$listData,$htmlOptions);
array(
    array('ua', 'Ukraine', '380'),
    array('ru', 'Russia', '7'),
...
    array('kz', 'Kazakhstan', '7'),
);
这样,您将只发送id,并在接收方计算出数据(地理位置、代码、国家)


但我必须问一下:

似乎唯一的Yii解决方案是在一个键(值)下连接标签

您希望选项标记看起来像什么

array( 0=>'Ukraine', 1=>'Russia', 2=>'Kazakhstan' );

+380(乌克兰)
这是我的选项标签。我想要
+7(俄罗斯)+7(哈萨克斯坦)
,问题是这个数组存储在一个文件中,我不想将它移动到数据库中。关于html选项-是的,这可能是某种解决方案,但它需要一些额外的javascript,在提交之前切换值和代码。我只想将一个数字代码从客户端发送到php,以避免不必要的服务器端循环。因此,如果
$listData
可以传递
数组('value'=>$value,'label'=>$label)
。。。