Ir para conteúdo

POWERED BY:

Arquivado

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

Beto Lima

[Resolvido] foreach

Recommended Posts

Pessoal estou com uma dificuldade para fazer a seguinte situação:

 

<?php
$a = array("um,dois,tres");
$b = array("UM,DOIS,TRES");

foreach ($a as $v1) {

foreach($b as $v2){
	echo $v1 .' + '. $v2;

}	

}
?>

 

na saída do browser sai assim:

um,dois,tres + UM,DOIS,TRES

 

Mas preciso fazer com que saia assim:

 

um UM,DOIS,TRES, dois UM,DOIS,TRES, tres UM,DOIS,TRES

 

Alguém tem uma idéia?

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

O array seu está certo ? ?

 

------------

EDITADO

 

Arruma a primeira linha, voce esta passando apenas 1 string em um array.

$a = array("um","dois","tres");
$b = array(" UM,DOIS,TRES ");

foreach ($a as $v1) {

       foreach($b as $v2){
               echo $v1 .'  '. $v2;

       }       

}

// Saida
// um UM,DOIS,TRES dois UM,DOIS,TRES tres UM,DOIS,TRES 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que está acontecendo é que os dois arrays estão com apenas um elemento, ou seja, no primeiro você está passando uma única string e no segundo também. Tente assim que irá funcionar:

 

$a = array("um","dois","tres");
$b = array("UM","DOIS","TRES");

Compartilhar este post


Link para o post
Compartilhar em outros sites

André, deu certo mas na minha real necessidade não estou conseguindo exito.

postei este exemplo apenas para tentar entender, mas não consegui adaptar pra minha real necessidade. então vou passar aqui meu cód.

 

recebo dados de um post e processo num php a parte então segue.

 

$val->set($p['valor'], 'Valor'); // este valor é um array (ele vem de um select multiple do html, quando selecionamos mais de um item)

seguindo....

foreach ( $p['valor'] as $valor){ então se tenho dois valores ele deve percorrer os dois e de fato faz isso certinho.

   $result = $Conn->query("SELECT * FROM tabela WHERE coluna = $valor"); // aqui o result do select pode trazer mais de um resultado.
          foreach ( $result->fetchAll( PDO::FETCH_OBJ ) as $saida ){ // então preciso percorrer os resultados para imprimir.
          echo $saida->coluna; // acontece que ele não imprime todos os resultados, imprime apenas o primeiro para ambos $valor
          }

}

 

a intenção é que ele percorra o prinmeiro item de $valor e depois percorra todos os valores do result do select e depois volte para a segunda posição de $valor e faça a mesma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

comenta o codigo e da um var_dump no $p['valor']; e veja se esta saindo um array e outro detalhe a parte o $valor é uma string? pois está sem aspa.

 

Faça esse laço sem o pdo e veja a query que ele imprime, assim você descobre se o erro está no foreach ou na query.

 

Exemplo:

 

Vamos supor que o $_POST['valor'] seja um array("Valor 1", "Valor 2", "Valor 3");

 

faça assim entao

 

$val = array("Valor 1", "Valor 2", "Valor 3");
foreach ( $val as $valor){
   $result = $Conn->query("SELECT * FROM tabela WHERE coluna = '$valor'"); // aqui o result do select pode trazer mais de um resultado.
          foreach ( $result->fetchAll( PDO::FETCH_OBJ ) as $saida ){ // então preciso percorrer os resultados para imprimir.
          echo $saida->coluna; // acontece que ele não imprime todos os resultados, imprime apenas o primeiro para ambos $valor
     }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

array(2) { [0]=> string(2) "19" [1]=> string(1) "1" }

 

André, não tem erro na query e $valor será sempre um inteiro.

posso ter esquecido de colocar na query o '.$valor.' ou com aspas duplas, mas ele funciona certinho.

 

se já no $val->set($p['valor'], 'Valor'); recebo um array e fiz um var_dump nele, e realmente é um array (array(2) { [0]=> string(2) "19" [1]=> string(1) "1" } )

 

 

não teria porque atribuir uma variavel pra receber um array concorda?

ex: $val = array($p['valor']);

 

até tentei assim mas daí deu pau geral....

 

bah pessoal estava certo o tempo todo o jeito que eu estava fazendo.

o problema todos estava na saída da geração do meu relatório. nada a ver com lógica php e sim com um ponto e virgula perdido no meio do html que estava por fim quebrando meu processamento.

por isso não conseguia entender o erro, pois estava fazendo tudo certo e não funcionava a lógica...

bom pessoal desculpe mesmo pela mancada....

acho que faltava eu almoçar hehehe

valeu pelas ajudas mesmo....

 

não sei porque minhas respostas ficaram todas no mesmo reply, mas enfim.....

valeu

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.