Normalerweise können Sie explode damit verwenden, aber die Verwendung von explode ist ein naiver Ansatz, da ein wenig aufgeräumt werden muss,
$array = array_filter( array_map('trim', explode(',', $teams ) ) );
Dies bewirkt 3 Dinge.
- $teams durch Komma auflösen
- Array-Map, die eine Funktion für jedes Element ausführt, in diesem Fall trim, das Leerzeichen entfernt
- Array-Filter, der leere Elemente entfernt, falls Sie ein Element wie dieses
item,,
haben - Beachten Sie jedoch, dass array_filter auch Elemente mitfalse
entfernt und0
sowie leere, aber in diesem Fall sollte es ausreichen.
Nun sollte das Konvertieren des Arrays in Ihr Markup relativ trivial sein,
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>';
Es besteht keine Notwendigkeit, das Standardelement auszuwählen, wenn es zuerst gerendert wird und es keine Auswahl gibt, wird es standardmäßig ausgewählt, die $selection
ist nur für die Formklebrigkeit und Sie können dies nach Ihren Bedürfnissen weglassen oder ändern.
Als letztes müssen Sie hier auf die Hülle achten, weil Sie gemischte Hüllen haben, also bin ich mir nicht 100 % sicher, welche Sie wollen, zum Beispiel india
vs. India
.
Verwenden Sie zum Kleinschreiben strtolower()
Um den ersten Buchstaben groß zu schreiben, verwenden Sie nur ucfirst()
Ich habe das auch nicht getestet, aber es sollte ziemlich nah dran sein, abzüglich aller Tippfehler, die ich vielleicht gemacht habe.