2013-03-08 29 views
0

請問我該如何動態生成這種格式的數據。我想要實現的是與我的下拉列表中使用此數據作爲選項組數據動態生成使用CDBCriteria的遞歸數據陣列

$data=array(
    'one'=>array(
     '1'=>'Satu', 
     '2'=>'Dua', 
     '3'=>'Tiga', 
    ), 
    'two'=>array(
     '1'=>'Sidji', 
     '2'=>'Loro', 
     '3'=>'Telu', 
    ), 
    'three'=>array(
     '1'=>'Hiji', 
     '2'=>'Dua', 
     '3'=>'Tilu', 
    ), 
); 
+0

所以你想要CArrayDataProvider? – TNC 2013-03-08 11:41:48

+0

請問你能告訴我如何使用CArrayDataProvider嗎?有我的cdbcriteria返回數據如我的問題所示 – spatanx 2013-03-08 12:25:52

回答

1

您可以使用此:

CMap::mergeArray(array($first array),$second array,....nth $array); 
+0

這似乎不是我的最佳解決方案,因爲我的數據已動態生成 – spatanx 2013-03-08 12:02:39

+0

@spatanx將數據分配給一個數組,然後插入CMAP :: mergeArray($分配array1,$ assigned array2)' – 2013-03-08 12:38:18

+0

好吧,我會嘗試它並回來。 – spatanx 2013-03-08 13:11:53

2

您可以使用CHtml::listData()groupField屬性生成這樣的數組。

$data=CHtml::listData($models,'valueAttribute','labelAttribute','groupAttribute'); 

其中$models是一個模型陣列。你可以直接將這個$data數組傳遞給CHtml::dropDownList(),yii會自動生成optgroup s

+0

Waooo,我現在就給這個鏡頭,然後回來。謝謝.. – spatanx 2013-03-13 18:45:57