Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Valor e Índice em foreach

Olá, pessoal, queria entender por que o seguinte código não funciona:

foreach ($contasCorrentes as $cpf => $conta) {
  echo $cpf . "\t" . " - " . "\t" . $cpf['titular'] .PHP_EOL;
}

Tentei imprimir para ficar tipo "cpf - nome titular", mas não sai o titular, somente o cpf que é o índice:

12345678910  - 
12345678911  - 
12345678912  - 

Na realidade, não entendi bem o conceito de passar o índice como $cpf => $conta no foreach, talvez por isso eu tenha errado, pois antes disso eu tinha entendido tudo corretamente. Valeu, abraços!

4 respostas
solução!

Giovani, você está tentando acessar o índice titular a partir da string CPF. O certo seria $conta['titular'].

Eita, é mesmo! hehe reli umas 3x, mas passou batido, o conceito de arrays em PHP é bem diferente do que eu estava acostumado.

Mas se usasse foreach ($contasCorrentes as $conta) também funcionaria para percorrer o array, não é? Só não daria para acessar os índices, então vale mais a pena utilizar $contasCorrentes as $cpf => conta pois podemos acessar tanto o índice quanto os outros valores? No caso, o código entende que $cpf é a variável atribuída ao índice por conta do => ?

Fala Giovanni,

Abstraindo o foreach ele é basicamente :

foreach($array as $chave => $valor)
{
// faça alguma coisa
}


ou

foreach($array as $valor)
{
// faça alguma coisa
}

A diferença entre usar ou não o formato com a $chave depende da sua necessidade, caso precise acessar os índices você usa a $chave, do contrário não usa.

Sobre o conceito de arrays em PHP, o array em php é na verdade um mapa ordenado, por isso te causou estranheza.

Opa, Diego, maravilha!

Agora saquei a diferença entre os casos :) Valeu, abraços!