Certo, vamos por parte....
Acredito que desta forma fique melhor de entender.
$a = array(array(0,1) , array(2,array(3)));
Você tem um array chamado $a, dentro deste array você possui dois valores, você pode ver isso pela virgula que separa os valor
$a = array(array(0,1),
Após este virgula você tem mais um índice digamos assim.
,array(2,array(3)));
Então se eu quisesse acessar o primeiro valor do array $a seria
$a[0];
Que neste caso se você atribuisse isto a uma variavel iria retornar UM ARRAY, pois é o que você tem dentro da posição $a[0];
$primeiroValor = $a[0];
$segundoValor = $a[1];
print_r($primeiroValor);
//retorno do console após print_r seria:
Array ( [0] => 0 [1] => 1 )
Se você fosse acessar o segundo valor iria retornar o um array com duas posições também, só a segunda posição do array $a possui também um array de duas posições, no primeiro valor o número 2 e no segundo valor um array com somente um valor 3.
Da uma olhada no retorno de $a[1];
$segundoValor = $a[1];
print_r($segundoValor);
//retorno do console após print_r seria:
Array ( [0] => 2 [1] => Array ( [0] => 3 ) )
Então para chegar no numero 3 eu preciso acessar a segunda posição do array $a[1]; (Lembrando que começa em 0 se fosse não definiu nenhuma chave de acesso).
Após chegar no segundo valor, como ele retorna um array precisa ficar assim $a[1][1];
print_r($a[1][1]);
//retorno print_r seria
Array ( [0] => 3 )
Ainda assim retorna um array, e não número 3 que é o que a questão quer.
Ele está na posição 0 deste array, então basta acessa-ló com echo, como não retorna mais array, não necessitamos mais de print_r :)
echo "Número acessado: ".$a[1][1][0];
//retorno do echo
Número acessado: 3
:) espero ter entendido qualquer coisa responde que tento lhe explicar se ficou mais alguma dúvida.