2017-06-20 54 views
0

基本上我有来自MySQL关键字union all的MySQL查询的数据。为Select2 Kartik Optgroup设置数据

$result = []; 
foreach ($listNoEstimate as $k => $v) { 
    $result[$v['id']][] = $v['no_surat'] . ' - ' . $v['level']; 
} 

这是数据

print_r($data); 


Array 
(
[1904] => Array 
    (
     [0] => C0005 - A 
    ) 

[16] => Array 
    (
     [0] => E1679 - B 
     [1] => E1679 - C 
    ) 
) 

要知道,在选择2,我们可以通过数据数组是这样的:

echo $form->field($model, 'state_1')->widget(Select2::classname(), [ 
    'data' => $data, 
]); 

我需要这样的:

<select> 
    <optgroup label = 'C0005'> 
     <option value = '1904'> C0005 - A </option> 
    </optgroup> 

    <optgroup label = 'E1679 '> 
     <option value = '16'> E1679 - A </option> 
     <option value = '16'> E1679 - B </option> 
    </optgroup> 
</select> 

请指教。

回答

0

使用PHP foreach

echo '<select>' 
foreach($data as $key => $value){ 
    echo '<optgroup label = '.$value.'>' 
    foreach($value as $v){ 

     echo '<option value="'.$key.'">'.$v.'</option>' 

    } 
    echo '</optgroup>' 
} 

echo '</select>' 

我没有测试过,希望你的想法!

0

更新的foreach

foreach ($listNoEstimate as $k => $v) { 
     $result[$v['no_surat']]['id'] = $v['no_surat'] . ' - ' . $v['level']; 
    }