Um erro muito comum quando mexemos com vetores (arrays) no PHP, é o Notice: Undefined offset. Ele significa que estamos tentando realizar uma operação com um array, buscando por um ítem inexistente. A mensagem de erro que normalmente surge é similar a esta:
Notice: Undefined offset: 5 in /home/meusitemodelo/public_html/teste.php on line 5
Um exemplo de código fonte em PHP que irá gerar este erro:
<?php
$estados = array("SP","PB","RS");
echo $estados[5];
?> Este erro ocorre pois o array $estados , conforme está sendo definido, terá os seguintes valores:
$estados[0] = “SP”;
 $estados[1] = “PB”;
 $estados[2] = “RS”;
Como estamos tentando chamar a posição 5 do array, por ela ser inexistente, causará o erro Notice: Undefined offset.
Solução 1: Usar o sizeof() para percorrer o array
Este erro pode normalmente ser corrigido implementando o sizeof(). Esta função retorna o número de registros em um array:
<?php
$estados = array("SP","PB","RS");
echo sizeof($estados);
?> Este código irá nos retornar o resultado 3. Desse modo, o array $estados, possui 3 itens.
Importante: o sizeof() sempre nos retornará uma posição a mais em relação ao índice do array, pois o vetor começa sempre com 0.
A forma correta de se percorrer um vetor:
<?php
$estados = array("SP","PB","RS");
for ($i=0;$i<sizeof($estados);$i++)
{
        echo "$i - $estados[$i] <br>";
}
?> Este trecho de código irá exibir:
0 – SP
 1 – PB
 2 – RS
Solução 2: Usar o print_r() como debug para imprimir o array completo
O comando print_r() é muito útil para visualizar de forma completa um array. Igualmente, quando estamos trabalhando com arrays multidimensionais.
Neste exemplo, vamos popular um array multidimensional:
$clientes[0]['nome']="Joao"; $clientes[0]['cidade']="Sao Paulo"; $clientes[1]['nome']="Fabio"; $clientes[1]['cidade']="Belo Horizonte"; $clientes[2]['nome']="Jair"; $clientes[2]['cidade']="Macapa";
Em seguida, vamos incluir no código-fonte o comando print_r:
print_r($clientes);
O resultado, será toda a estrutura do nosso array de forma organizada:
Array
(
   [0] => Array
   (
      [nome] => Joao
      [cidade] => Sao Paulo
   )
   [1] => Array
   (
      [nome] => Fabio
      [cidade] => Belo Horizonte
   )
   [2] => Array
   (
      [nome] => Jair
      [cidade] => Macapa
   )
)
 Dessa forma é possível entender exatamente a estrutura do array, e realizar a chamada da forma correta.