Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Estou com dificuldades de tratar os dados desde array
$lista->produtos = Array (
[nome] => [1] => Notebook [2] => Teclado basico [3] => Mouse sem fio [4] => Caixa de som basica [5] => Estabilizador [6] => Monitor [7] => Nobreak
[preco] => Array ( [0] => [1] => 500.00 [2] => 20.00 [3] => 50.00 [4] => 20.00 [5] => 30.00 [6] => 200.00 [7] => 300.00
// preciso dar um Foreach para exibir os dados
// porem so consigo mostrar ou o "preco" ou o "nome"
foreach( $lista->produtos as $produtos){
/// tentei com $lista->produtos['nome'] so mostra o nome (claro)
echo $produtos . "<br>";
/// isso da erro porque eu tenho que passar [nome] ou [preco] no foreach
}
como eu faço para exibir a lista ?
Notebook 500,00
Teclado basico 20,00
e todos os produtos com seus preços
Não entendi o formato dos arrays acima pois há erros de sintaxe.
Pela lógica da estrutura, deve ser algo assim para extrair:
foreach( $lista->produtos['nome'] as $k => $nome){
echo $nome . ': ' . $lista->produtos['preco'][$k] . '<br />' . PHP_EOL;
}Ao elaborar a estrutura do array tentaram colocar ordem na casa mas acabaram errando nas dimensões, tudo bem, acontece.
E apesar de você já ter a sua resposta, vou postar mais uma:
$lista = array_combine( $lista['nome'], $lista['preco'] );
Agora você pode iterar "normalmente", isto é, da forma como eu teho certeza que você já tinha em mente:
foreach( $lista as $produto => $valor ){
printf( "Produto: %s\nPreço: %s\n\n", $produto, $valor );
}
Saída:
Produto: NotebookPreço: 500.00
Produto: Teclado basico
Preço: 20.00
Produto: Mouse sem fio
Preço: 50.00
Produto: Caixa de som basica
Preço: 20
Produto: Estabilizador
Preço: 30.00
Produto: Nobreak
Preço: 200.00
:bye:
Sim, deve ter algum erro mesmo na forma que eu coloquei, mas nosso amigo estruturou melhor
Array
(
[nome] => Array
(
[0] => Notebook
[1] => Teclado basico
[2] => Mouse sem fio
[3] => Caixa de som basica
[4] => Estabilizador
[5] => Nobreak
)
[preco] => Array
(
[0] => 500.00
[1] => 20.00
[2] => 50.00
[3] => 20
[4] => 30.00
[5] => 200.00
)
)
estou pegando uma variavel da classe aqui ó = $lista->produtos
e pegando os valores do array que tem 2 posições [nome] e [preco] cada uma com um array de seus dados respectivos nome do produto e preço
deu certo com a dica do amigo
$itens = count($lista['nome']);
for($i=0; $i<$itens; $i++){
echo 'nome: '. $lista['nome'][$i] .' - preço R$'. $lista['preco'][$i] .'<br>';
}
Agradeço a todos, obrigado!!
veja se a estrutura do seu array é essa:
Array
(
vc pode listar os produtos assim: