Per il giorno e per l'anno non c'è bisogno di usare array ma se la select relativa al mese vuoi che li visualizzi in italiano credo che la soluzione migliore sia proprio quella di ricorrere ad un array.
Altrimenti dovresti fare una serie di if del tipo se il mese è 1 allora visualizza gennaio, se 2 visualizza febbraio, ecc.
Non so quanto ti converrebbe.
<form name="data">
<select name="giorno">
Codice PHP:
<?php
$giorno = date("j");
for ($i=1; $i<=31; $i++)
{
if ($i == $giorno)
echo "<option value=\"$i\" selected>$i </option>";
else
echo "<option value=\"$i\">$i </option>";
}
$mesi = array (1 => "Gennaio",
"Febbraio",
"Marzo",
"Aprile",
"Maggio",
"Giugno",
"Luglio",
"Agosto",
"Settembre",
"Ottobre",
"Novembre",
"Dicembre");
?>
</select>
<select name="mese">
Codice PHP:
<?php
$mese = date("n");
for ($i=1; $i<=12; $i++)
{
if ($i == $mese)
echo "<option value=\"$mesi[$i]\" selected>$mesi[$i]</option>";
else
echo "<option value=\"$mesi[$i]\">$mesi[$i]</option>";
}
?>
</select>
<select name="anno">
Codice PHP:
<?php
$anno = date("Y");
for ($i=2005; $i<=2015; $i++)
{
if ($i == $anno)
echo "<option value=\"$i\" selected>$i</option>";
else
echo "<option value=\"$i\">$i</option>";
}
?>
</select>
</form>