2017-05-08 43 views
0

我有一個數組如下:yii2的HtmlHelper下拉列表值

array[$key][$value] 

和我使用它以形成我認爲一個DropDownList。我沒有使用ActiveForm,因爲該數組不是來自模型。

echo Html::dropDownList("Listname","",$array,['prompt' => '--- select ---']) ; 
echo Html::dropDownList("Listname","",ArrayHelper::map($array,'id','value'),['prompt' => '--- select ---']) ; 

的var_dump

array(2) { [0]=> string(6) "value1" [1]=> string(6) "value2" [3]...} 

輸出的HTML看起來像這樣

<select name="Listname" > 
<option value>---select---</option 
<option value="0">Value1</option> 
<option value="1">Value2</option> 
<option value="2">Value3</option> 
<option value="3">Value4</option> 
</select> 

我如何設置的值是=的名字嗎?如

<option value="value1">Value1</option> 
<option value="value2">Value2</option> 
<option value="value3">Value3</option> 
<option value="value4">Value4</option> 

我意識到我可能必須以某種方式使用ArrayHelper,但我不能完全明白它。這或者htmlhelper中的選項標籤。

提前致謝!

+0

嘗試'ArrayHelper :: map($ array,'value','value')' – ArtOsi

+0

您好我編輯我的var_dump數組。將映射仍然在這種情況下工作? 我將嘗試重新格式化我的陣列並測試它,謝謝 – HelloGaro

回答

0

您有:

echo Html::dropDownList("Listname","",ArrayHelper::map($array,'id','value'),['prompt' => '--- select ---']) ; 

如果你想爲每個輸入作爲其內容相同的值,它應該是:

echo Html::dropDownList("Listname","",ArrayHelper::map($array,'value','value'),['prompt' => '--- select ---']) ; 

欲瞭解更多信息,看看官方ArrayHelper: :map文檔:http://www.yiiframework.com/doc-2.0/yii-helpers-basearrayhelper.html#map()-detail

你必須記住,Html :: dropDownList期待一個key => value數組,你如何得到該數組並不重要。我的意思是,ArrayHelper就像名字所暗示的那樣只是一個幫手。如果你覺得更舒適,你可以自己創建你的數組。

+0

謝謝!我相信我的陣列並不合適。我會用一個新的數組來測試它 – HelloGaro