1) sì, è una inizializzazione valida
2) dovresti scorrere l'array fino al terzo indice oppure:
Codice PHP:
// se devi estrarre l'elemento $i-esimo (con indice a partire da 0)
$titoli = array_values($libro['titolo']);
$titolo = $titoli[$i];
anche se dall'uso che vuoi fare forse potresti usare un array così:
Codice PHP:
$libro = array(
array('titolo' => $titolo1, 'autore' => $autore1),
array('titolo' => $titolo1, 'autore' => $autore2),
...
);
e in questo caso potresti accedere all' $i-esimo libro con $libro[$i]['titolo'] (analogamente per l'autore).