Meestal kun je hiermee exploderen, maar alleen exploderen is een naïeve benadering omdat er wat opruimwerk moet worden gedaan,
$array = array_filter( array_map('trim', explode(',', $teams ) ) );
Dit doet 3 dingen.
- ontploft $teams door komma
- matrixkaart, die een functie uitvoert voor elk item, in dit geval trimmen die witruimte verwijdert
- arrayfilter dat lege items verwijdert voor het geval je een item als dit hebt
item,,
- merk echter op dat array_filter ook elementen verwijdert metfalse
en0
evenals lege, maar in dit geval zou het voldoende moeten zijn.
Nu zou het converteren van de array naar je opmaak relatief triviaal moeten zijn,
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>';
Het is niet nodig om het standaarditem te selecteren, als het eerst wordt weergegeven en er is geen selectie, dan wordt het standaard geselecteerd, de $selection
is alleen bedoeld voor plakkerigheid en u kunt dat weglaten of wijzigen als uw behoeften dit vereisen.
Het laatste is dat je de behuizing hier moet bekijken, omdat je een gemengde behuizing hebt, dus ik weet niet 100% zeker welke je wilt, bijvoorbeeld india
vs India
.
Gebruik voor kleine letters strtolower()
gebruik alleen ucfirst()
. om de eerste letter in hoofdletters te zetten
Ik heb dit ook niet getest, maar het zou redelijk dichtbij moeten zijn, minus eventuele typefouten die ik mogelijk heb gemaakt.