GARANTIR DESCONTO

Fórum https://pt.wikipedia.org/wiki/PHP #594588

01/06/2018

0

PHP

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 ?
Antonio Gomes

Antonio Gomes

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.

$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

Leandro Chiodini
Responder

Gostei + 2

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar