Por lo general, puede usar explotar con esto, sin embargo, solo usar explotar es un enfoque ingenuo ya que hay un poco de limpieza por hacer,
$array = array_filter( array_map('trim', explode(',', $teams ) ) );
Esto hace 3 cosas.
- explotar $equipos por coma
- mapa de matriz, que ejecuta una función en cada elemento, en este caso trim, que elimina los espacios en blanco
- filtro de matriz que elimina elementos vacíos en caso de que tenga un elemento como este
item,,
- tenga en cuenta que array_filter también eliminará elementos confalse
y0
así como vacíos, pero en este caso debería ser suficiente.
Ahora, convertir la matriz a su marcado debería ser relativamente trivial,
echo '<select name="tournament_team" class="form-control" >';
echo '<option value="">--- Select Team ---</option>';
foreach( $array as $item ){
if($_POST['tournament_team'] == $item){
$selected = ' selected="selected"';
}else{
$selected = '';
}
echo '<option value="'.$item.'"'.$selected.'>'.$item.'</option>';
}
echo '</select>';
No es necesario seleccionar el elemento predeterminado, si se representa primero y no hay ninguna selección, se seleccionará de forma predeterminada, la $selection
es solo para mantener el formulario pegajoso y puede omitirlo o modificarlo según lo dicten sus necesidades.
Lo último es que tendrá que ver la carcasa aquí, porque tiene una carcasa mixta, por lo que no estoy 100% seguro de cuál quiere, por ejemplo, india
contra India
.
Para usar minúsculas strtolower()
para poner en mayúsculas la primera letra solo use ucfirst()
Además, no he probado esto, pero debería estar bastante cerca menos los errores tipográficos que podría haber hecho.