$i) { $arr_keys[] = self::KEY_PREFIX . $i; $i++; } array_flip($arr_keys); } $model = new DynamicModel($arr_keys); return $model; } // @todo add comments public static function CreateGridWithDropDownListHeader( $dataProvider, $form, $header_model, $arr_header_values ) { $columns_config = [['class' => SerialColumn::className()]]; $i = 0; foreach( $header_model as $key => $value ) { $columns_config[] = ['header' => $form->field($header_model, $key, ['inputOptions' => ['label' => '']])->dropDownList($arr_header_values), 'attribute' => $i]; $i++; } $dynamic_grid_view = GridView::widget( ['dataProvider' => $dataProvider, 'columns' => $columns_config ] ); return $dynamic_grid_view; } public static function CreateAssocArray ($value_arr, $key_array) { self::$key_array = $key_array; $result = array_map( function ($value) { foreach ($value as $key => $sub_value) { return self::change_key( $key, self::$key_array[$sub_value], $value ); } // array_combine( self::$key_array, $value ); }, $value_arr); return $result; } protected static function change_key( $key, $new_key, $arr ){ $res = $arr; if(!array_key_exists($new_key,$arr)){ $arr[$new_key]=$arr[$key]; unset($arr[$key]); $res = $arr; } return $res; } }