Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ALberto França de Oliveir

Erro com com contagem e impressão da array

Recommended Posts

PESSOAL O QUE TA ERRADO??? OS VALORES DAS VARIAVEIS ESTÃO VINDO DUM FORMULARIO.. JA VERIFIQUEII

 

MAS NA HORA APARECE OS RESULTADO APARECE ESSA MSG

 

 

Notice: Undefined offset: 3 in D:\xampp\htdocs\estudar\pg2.php on line 22

 

 

 

 

O CODIGO PHP EH ESSE

 

 

 

<?php
$nome = $_POST['nome'];
$email = $_POST['email'];
$senha = $_POST['senha'];
$dados = array( 0=> "$nome", 1=> "$email", 2=> "$senha");
for($i=0;$i<count($dados);$i++);
echo $dados[$i];
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Você não abriu e fechou chaves no for:

for( $i=0; $i < count($dados); $i++ ) {
    echo $dados[$i];
}

 

Também mais o erro não é esse.

 

Amigo o seu problema é que a contagem no for está passando um indice a mais, vamos lá:

 

Todo array começa no índice 0 logo no seu loop ele vai passar 1 índice a mais, o que ele está fazendo é:

 

* Você tem 3 ítens no array, porém o for está buscando quatro, ficando dessa forma:

 

 

 
echo $dados[0]; // Índice 0 (Contagem do For)
echo $dados[1]; // Índice 1 (Contagem do For)
echo $dados[2]; // Índice 2 (Contagem do For)
echo $dados[3]; // // Índice 3 (Contagem do For), Esse não existe:
 

 

Ou seja, seu loop for busca 4 índices no array. Mas e o que fazer? Muito simples amigo:

 

Declare uma variável for do loop e subtraia 1 dela, ficando assim:

 

 

 
$count = count($dados) -1;
 

 

E no loop você faz:

 

 

 
for($i=0; $i <= $count; $i++){
 
    echo $dados[i];
 
}
 

 

Entendendo a lógica:

 

- A variável $count vai conter o valor dois(2) e não três (3) como antes, logo quando passar no loop ele vai contar o índice até o número dois (2), ficando assim:

 

 

 
echo $dados[0];
echo $dados[1];
echo $dados[2];
 

 

 

Ai você olha e pensa, mas existem 3 índices, sim existem porém a contagem começa do zero então você vai contar - 0, 1, 2 que vai dar três índices e não 1, 2, 3 porque seu array começa do zero (0) logo contando até o três você tem - 0, 1, 2, 3 que vai retornar 4 índices de array.

 

Espero ter ajudado, abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.