Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ThunderPHP

[Resolvido] Capturar valores array

Recommended Posts

Bom dia a todos que sempre me dão uma força...

 

Estou novamente batendo cabeça com uma instrução e preciso da ajuda de vcs...

 

Situação:

 

$valor = $_POST['check'];    
       foreach($valor as $valor){
	echo "'".$valor."'".",";
}

 

//Consigo pegar os valores que são selecionados na checkbox blzinha... Exemplo: 'arroz','fejão'.. etc

 

Agora.. preciso capturar esses valores para serem inseridos em uma variável...

 

$myArr=array('CODIGO','DESCRICAO','VALOR'); ----> Preciso colocar esses valores aqui....

 

Já tentei de tudo... mas quando lanço em uma variável.. vem somente o último valor...

 

Obrigado pela ajuda galera...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seu foreach está errado .. faça assim

<?php
     $valor = $_POST [ 'check' ] ;
     forEach ( $valor as $val ) {
               // ... 
     }

 

Seu erro é na variável que você vai atribuir cada valor percorrido .. ela não deve ter o mesmo nome da variável que está sendo iterada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey, obrigado pela tua ajuda....

 

  $valor = $_POST['check'];    
       forEach ( $valor as $val ) { 
	$valor = "'".$valor."'".",";}

echo $valor;

 

Resultado: 'Array',',',

 

Onde eu estou errando?

 

Obrigado mais uma vez...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Andrey,

 

vi e revi esse código e tá brabo viu...

 

Perdoe minha ignorância... não consegui pegar os valores do array...

 

 $valor = $_POST['check'];    
       foreach($valor as $val){
	echo "'".$val."'".",";} -----> Aqui aparece que é uma beleza... 'ARROZ','FEIJÃO',etc...

	echo $val; ------> Aqui só aparece o último item : FEIJÃO

 

Me ajude por favor....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro .. porque você está tentando imprimir uma variável que é trocada a cada volta do loop, se você quer juntar todos os items, separando os por vírgula por exemplo, faça assim

<?php
    $check = $_POST [ 'check' ] ;
    echo implode ( ', ' , $check ) ;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro de tudo, apesar de ser possível programar sem as { chaves de controle }, não o faça, se não quando o caldo engrossar vai ficar bem mais difícil de ler um código unicamente por sua indentação.

 

Preste atenção no exemplo do Andrey:

 

<?php

$valor = $_POST [ 'check' ] ;

foreach( $valor as $val ) {

   // ...
}

Fica bem mais claro onde o foreach começa e onde ele termina.

 

Agora, leia sobre como foreach funciona.

 

Você informa dentro dele um array ou um objeto Traversable (que não vem ao caso agora) seguido da keyword AS e uma variável. Opcionalmente você coloca um flecha ( => ) e outra variável.

 

A estrutura vai iterar pelo array, isto é, executar o bloco de comandos em / com / para cada um dos elementos do parâmetro informado.

 

A cada iteração ("passada"), DENTRO DA ESTRUTURA, a variável que você definiu vai armazenar o valor corrente da iteração.

 

Percebeu a capitalizada no texto? Seu erro está aí.

 

Dentro do bloco você tentava ecoar $valor que é um array. Sempre que tentar ecoar um array você verá Array. se quiser visualizar um array inteiro, use print_r() ou var_dump().

 

Fora dele, você tentava ecoar a variável que DENTRO da estrutura mudava de valor.

Aconteceu o seguinte:

 

$valor = array( 'arroz', 'feijão', 'carne' );

foreach( $valor as $val ) {

   echo $val;
}

Na primeira iteração $val valerá arroz, na segunda, feijão e na terceira carne. E acabou.

 

Daí para frente $val vai sempre ter o valor de carne, a menos que você altere propositalmente esse valor.

 

Se você precisar por algum motivo tirar algumas informações de um array para usar fora de um loop, transfira essas informações para outros array, definido fora do loop, como é o caso de interações com alguns bancos de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.