Ir para conteúdo

POWERED BY:

Arquivado

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

André Kohler

[Resolvido] For com 2 variaveis

Recommended Posts

Não. Mas você pode ficar incrementando uma variável a cada iteração do laço:

 

$i2 = 0;
for($i=0;$i<5;$i++) {
 // sua coisa aqui
 $i2++;
}

 

Se quiser parar o laço quando ocorrer determinada condição, use o break.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde como é que se faz um for com 2 variaveis?

<?php
for($i=1;$i<=100;$i++){
   $cont = 0;
   for($j=1;$j<=i;$j++){
       if($i % $j == 0){
           $cont++;
       }
   }
   if($cont == 2){
       echo $i . 'é primo<br/>';
   }
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fica muito dificil te explicar se você ainda não entendeu, eu só coloquei a sintaxe de um FOR com duas variaveis ao mesmo tempo. Era apenas isso que eu precisa saber 1 FOR COM 2 VARIAVEIS

Compartilhar este post


Link para o post
Compartilhar em outros sites

$item = $_POST['id_item'];
$quantidade = $_POST['qtd_empenho'];
$qtd_item = count($item);
$qtd_qtd = count($quantidade);
$id_empenho = mysql_insert_id();			
for($i = 0, $e=0; $i<$qtd_item, $e<$qtd_qtd; $i++, $e++)
{
if($quantidade[$e] == '')
{
continue;				
}
else
{
$id_item = $item[$i];
$qtd_item_empenho = $quantidade[$e];						
$dao = new EmpenhoDAO();
$dao->CadastrarItensEmpenho($id_empenho, $id_item, $qtd_item_empenho);
}
}

 

Apenas um trecho do codigo, $_POST['id_item'], $_POST['qtd_empenho'] são dados de um formulario, se qtd_empenho for preenchida no formulario ele irá cadastrar aquela quantidade referente aquele item no empenho que está sendo cadastrado;

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
$qtd = min( count( $_POST[ 'id_item' ] ), count( $_POST[ 'qtd_empenho' ] ) );
$id  = mysql_insert_id();     

for( $i = 0; $i < $qtd; ++$i ) {
   if( $quantidade[ $e ] == '' )
       continue;

   $dao = new EmpenhoDAO();
   $dao->CadastrarItensEmpenho( $id, $_POST[ 'id_item' ][ $i ], $_POST[ 'qtd_empenho' ][ $e ] );
}

 

Seu código estava muito ilegível. O primeiro para ter um bom código é que ele seja legível.

Compartilhar este post


Link para o post
Compartilhar em outros sites

(...)

 

Apenas um trecho do codigo, $_POST['id_item'], $_POST['qtd_empenho'] são dados de um formulario, se qtd_empenho for preenchida no formulario ele irá cadastrar aquela quantidade referente aquele item no empenho que está sendo cadastrado;

 

Hum... é que antes você tinha escrito:

 

for($i=10, $e=10; $i>0, $e>0; $i--, $e--)
{

}

 

Não fazia muito sentido, já que tanto valores iniciais, quanto condições e as decrementações eram iguais para as duas variáveis. Agora ao menos as condições são diferentes.

 

for($i = 0, $e=0; $i<$qtd_item, $e<$qtd_qtd; $i++, $e++) {
  (..)
}

 

Se eu fosse você eu estudaria uma maneira de usar outro tipo de laço, fazer algo mais simples.

 

while($qtd_item and $qtd_qtd) {
   // ...

   $qtd_item--; $qtd_qtd--;
}

 

Laços while são mais simples e fáceis de entender e debugar (se necessário), e também costumam ter melhor performance.

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.