Fórum https://pt.wikipedia.org/wiki/PHP #594588
01/06/2018
0
Nesse exemplo abaixo :
<?php
$vet01 = array();
$vet01[] = "Sistemas operacionais";
$vet01[] = "Compiladores";
$vet01[] = "Bancos de dados";
$vet02 = array(1, 2, 3, 4, 5);
$vet03 = array( 0 => 0, 2 => 3, 10 => "item 10");
for ($i = 0; $i < count($vet01); $i++) {
echo $vet01[$i] . "<br />";
}
?>
Se eu ,mandar imprimir :
for ($i = 0; $i < count($vet01); $i++) {
echo $vet01[$i] . "<br />";
}
ou
for ($i = 0; $i < count($vet02); $i++) {
echo $vet02[$i] . "<br />";
}
Eles apresentam respectivamente os valores ,acima sem erros algum , porém , se eu mandar imprimir , for ($i = 0; $i < count($vet03); $i++) {
echo $vet03[$i] . "<br />";
}
Ele já me apresenta o seguinte erro : http://prntscr.com/jpjzoy , porquê será que isso acontece ?
<?php
$vet01 = array();
$vet01[] = "Sistemas operacionais";
$vet01[] = "Compiladores";
$vet01[] = "Bancos de dados";
$vet02 = array(1, 2, 3, 4, 5);
$vet03 = array( 0 => 0, 2 => 3, 10 => "item 10");
for ($i = 0; $i < count($vet01); $i++) {
echo $vet01[$i] . "<br />";
}
?>
Se eu ,mandar imprimir :
for ($i = 0; $i < count($vet01); $i++) {
echo $vet01[$i] . "<br />";
}
ou
for ($i = 0; $i < count($vet02); $i++) {
echo $vet02[$i] . "<br />";
}
Eles apresentam respectivamente os valores ,acima sem erros algum , porém , se eu mandar imprimir , for ($i = 0; $i < count($vet03); $i++) {
echo $vet03[$i] . "<br />";
}
Ele já me apresenta o seguinte erro : http://prntscr.com/jpjzoy , porquê será que isso acontece ?
Antonio Gomes
Curtir tópico
+ 0
Responder
Post mais votado
01/06/2018
Manckenna
Tudo certo
o que ocorre neste caso é que você esta optando por usar chaves para declarar seu vetor.
você declarou ele assim.
Isso quer dizer que internamente seu vetor esta assim
indice = valor
0 = 0
2 = 3
10 = "item 10"
então quando você usa o for
Para cara vez que o laço repetir a sua variável $i vai receber + 1, certo?
Então a primeira vez que ele entrar no laço de repetição a variável $i vai ser igual a 0
então ele vai achar o índice 0.
Porem a segunda vez que entrar a sua variável $i vai ser igual a 1
porem veja a lista de índices que você criou não existe um índice 1 (0,2,3)
O ideal neste caso quando se cria um vetor passando as chaves para seus valores é utilizar o foreach
ficaria assim:
espero ter ajudado.
Tudo certo
o que ocorre neste caso é que você esta optando por usar chaves para declarar seu vetor.
você declarou ele assim.
$vet03 = array( 0 => 0, 2 => 3, 10 => "item 10");
Isso quer dizer que internamente seu vetor esta assim
indice = valor
0 = 0
2 = 3
10 = "item 10"
então quando você usa o for
for ($i = 0; $i < count($vet03); $i++) {
echo $vet03[$i] . "<br />";
}Para cara vez que o laço repetir a sua variável $i vai receber + 1, certo?
Então a primeira vez que ele entrar no laço de repetição a variável $i vai ser igual a 0
então ele vai achar o índice 0.
Porem a segunda vez que entrar a sua variável $i vai ser igual a 1
porem veja a lista de índices que você criou não existe um índice 1 (0,2,3)
O ideal neste caso quando se cria um vetor passando as chaves para seus valores é utilizar o foreach
ficaria assim:
foreach($vet03 as $key => $value)
{
echo "{$key} : {$value} <br/>";
}espero ter ajudado.
Leandro Chiodini
Responder
Gostei + 2
Clique aqui para fazer login e interagir na Comunidade :)