Obvykle s tím můžete použít explode, ale samotné použití explode je naivní přístup, protože je třeba udělat trochu vyčištění,
$array = array_filter( array_map('trim', explode(',', $teams ) ) );
To dělá 3 věci.
- rozdělit $teams čárkou
- mapa pole, která spouští funkci pro každou položku, v tomto případě trim, který odstraňuje mezery
- Filtr pole, který odstraní prázdné položky pouze v případě, že máte položku jako je tato
item,,
- všimněte si však, že array_filter také odstraní prvky sfalse
a0
stejně jako prázdné, ale v tomto případě by to mělo být dostatečné.
Nyní by převod pole na vaše značky mělo být relativitou triviální,
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>';
Není třeba vybírat výchozí položku, pokud je vykreslena jako první a neexistuje žádný výběr, bude vybrána ve výchozím nastavení, $selection
je pouze pro lepivost formy a můžete ji vynechat nebo upravit podle vašich potřeb.
Poslední věcí je, že zde budete muset sledovat střívka, protože máte smíšená střívka, takže si nejsem 100% jistý, které chcete, například india
vs India
.
Pro malá písmena použijte strtolower()
pro velké první písmeno použijte pouze ucfirst()
Také jsem to netestoval, ale mělo by to být docela blízko bez překlepů, které jsem mohl udělat.