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

Exibir índice/chave do cliente

Como faço para exibir o índice/chave do array na function exibeConta(array $conta)?

function exibeConta(array $conta) //modificado para incluir CPF/chave
{
    ['chave'=> $cpf, 'titular' => $titular, 'saldo' => $saldo] = $conta;
    echo "<li>CPF: $cpf. Titular: $titular. Saldo: $saldo</li>";
}
4 respostas

Olá Erico. Não entendi sua dúvida. Consegue me explicar um pouco melhor?

Na aula 6, atividade 7, passo 1 foi criada a sub-rotina exibeConta que recebe um array $conta e dentro da sub-rotina é criada tag <li></li> com os titulares e respectivos saldos. Gostaria que essa sub-rotina também exibisse a chave do vetor, logo minha saída deveria ter CPF, Titular e Saldo. O passo 2, contém a chamada de exibeConta dentro de um foreach onde tem-se $cpf => conta. Tentei incluir a variável $cpf dentro do exibeConta mas o navegador não mostra o valor de CPF.

solução!

Opa, Erico.

Você tem 2 opções.

Pra percorrer tanto as chaves quanto os valores ao mesmo tempo:

foreach ($conta as $chave => $valor) {
    // Na variável $chave vai ter a chave da iteração atual (cpf, titular ou saldo)
    // Na variável $valor você vai ter o valor referente à chave atual
}

Se quiser pegar um array contendo somente as chaves (ignorando seus valores), você pode usar a função array_keys: http://php.net/array_keys

Percorrer ao mesmo tempo seria passar ambos por parâmetro? Fiz como segue, deu certo. Grato pelos esclarecimentos!

function exibeConta2($cpf, array $conta)
{
    ['titular' => $titular, 'saldo' => $saldo] = $conta;
    echo "<li>Chave: $cpf - Titular: $titular - Saldo: $saldo</li>";
}
echo "<ul>";
foreach ($contasCorrentes as $cpf => $conta) {
    exibeConta2($cpf, $conta);
}
echo "</ul>";
  • Chave: 123.456.789-10 - Titular: Maria - Saldo: 9500
  • Chave: 123.456.689-11 - Titular: Alberto - Saldo: 100
  • Chave: 123.256.789-12 - Titular: Vinicius - Saldo: 1000