Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 547299
            [titulo] => Problema ao usar dois for
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-03-01 10:21:01
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => A
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => Pessoal esse usuário "Ramom" está só poluindo mesmo, procurem não dar importância para os posts dele, estou cancelando na medida do possível!

Vamos ver até quando vai essa "brincadeira" dele!

O PHP suporta sim loops FOR dentro FOR. ) )

Problema ao usar dois for

PHP
Diogo
   - 01 mar 2016

Estou com um problema ao usar dois for, exemplo, quando coloco o n_temporadas = 5 e o n_episódios = 3, ele deveria criar 30 linhas ""document.getElementById('div_ep$y$i').style.display=\"none\";" mais cria apenas 6 que são os referentes ao 5, é como se o primeiro for não percorresse, apenas começasse do $y = 5; alguém tem como me ajudar, fiquei a tarde toda tentando resolver ontem, mas nada até agora?
#Código

for($y = 1; $y < $n_temporadas+1; $y++){
    for($i = 1; $i < $n_episodios+1; $i++){
        if($audio == dublado){

$episodios_none_array[$i] = "document.getElementById('div_ep$y$i').style.display=\"none\";
                 document.getElementById('div_ep_op$y$i').style.display=\"none\";
                ";

$episodios_block_array[$i] = "case 'mostrar_ep$y$i':
                                  document.getElementById('div_ep$y$i').style.display=\"block\";
break
case 'mostrar_ep_op$y$i':
                                  document.getElementById('div_ep_op$y$i').style.display=\"block\"; 
break
";

$ep_dub = $_POST['iframe_ep'.$y.$i];    //valores recebido de formulários
$ep_dub_op = $_POST['iframe_ep_op'.$y.$i]; //valores recebido de formulários

$conteudo_episodios_array[$i] = "<button type=\"button\" onclick=\"mostrar_abas(this);\" id=\"mostrar_ep$y$i\" >Episodio $i</button> - <button type=\"button\" onclick=\"mostrar_abas(this);\" id=\"mostrar_ep_op$y$i\" >Opção 2</button><br>
                ";
$div_episodios_array[$i] = "<div id=\"div_ep$y$i\" style=\"display:none;\">$ep_dub</div>
<div id=\"div_ep_op$y$i\" style=\"display:none;\">$ep_dub_op</div>
               ";

}else if($audio == dub_leg){
//ainda nada
        }
    }
}

//transformar os array em string 

$episodios_none = implode(" ", $episodios_none_array);
$episodios_block = implode(" ", $episodios_block_array);
$conteudo_episodios = implode(" ", $conteudo_episodios_array);
$div_episodios = implode(" ", $div_episodios_array);

Post mais votado

William (devwilliam)
   - 01 mar 2016

Pessoal esse usuário "Ramom" está só poluindo mesmo, procurem não dar importância para os posts dele, estou cancelando na medida do possível!

Vamos ver até quando vai essa "brincadeira" dele!

O PHP suporta sim loops FOR dentro FOR.

Diogo
   - 01 mar 2016

Acho que você está enganado, pois estou usando em outro lugar do código um for dentro do outro e está funcionando perfeitamente. Vou deixar abaixo o código, esse funcionou corretamente, e estou usando um for dentro do outro dentro de um if:

Testei com While para o n_temporadas e não deu certo, ainda são criados apenas 6. O certo seria ser criados 30 linhas, 15 "div_ep" e 15 "div_ep_op"(tipo isso: 11, 12, 13, 21, 22, 23, 31, 32, 33, 41, 42, 43, 51, 52, 53).

#Código

<?php 
   if($audio == dublado){?>
    <?php
	for($x = 1; $x < $n_temporadas+1; $x++){
	echo "$x";?>ªTemporada Dublado - <br>
	<?php
	for($i = 1; $i < $n_episodios+1; $i++){ 
	echo "$i";?>.ep:
	<input type="text" value="opção1" name="<?php echo htmlspecialchars('iframe_ep'.$x.$i);?>" autocomplete="off" /> - <input type="text" value="opção2" name="<?php echo htmlspecialchars('iframe_ep_op'.$x.$i);?>" autocomplete="off" /><br>
	<?php } 
	}?>
	<?php 
	}else if($audio == dub_leg){?>
	  <?php
	for($x = 1; $x < $n_temporadas+1; $x++){
	echo "$x";?>ªTemporada Dublado - <br>
	<?php

Marcio Araujo
   - 01 mar 2016


Citação:
Bom dia meu caro.

Infelizmente PHP não suporta um for dentro de outro for.

Recomendo usar um for dentro de um while.

Abraço.


Nunca tinha lido algo assim, mas nunca foi mostrado em apostilas e em video aulas possiveis exemplos com dois for, nunca tinha reparado!

Diogo
   - 01 mar 2016


Citação:

Citação:
Bom dia meu caro.

Infelizmente PHP não suporta um for dentro de outro for.

Recomendo usar um for dentro de um while.

Abraço.


Nunca tinha lido algo assim, mas nunca foi mostrado em apostilas e em video aulas possiveis exemplos com dois for, nunca tinha reparado!


Acabei de mostrar um exemplo que funciona usando dois for, mas estou tendo aquele problema com o outro código.

Marcio Araujo
   - 01 mar 2016

Funciona corretamente? Mas na documentação existe alguma especificação contra?

Diogo
   - 01 mar 2016

Até agora não encontrei nada não, acho que não tem nada contra, pois isso seria uma limitação grande demais para o php. Acho que tem como, o problema está em outro lugar que não está funcionando. Talvez possa ser a maneira errada de colocar os índices, ainda não, é isso que quero saber kkk

Marcio Araujo
   - 01 mar 2016

Deve ser um detalhe, tentar ver com calma aqui.

Diogo
   - 01 mar 2016

Vou mandar o que recebo e o que deveria receber. Estou recebendo dessa parte do:

#Código

$episodios_none_array[$i] = "document.getElementById('div_ep$y$i').style.display=\"none\";
                                              document.getElementById('div_ep_op$y$i').style.display=\"none\";
                                              ";


Isso:

#Código
document.getElementById('div_ep51').style.display="none";
document.getElementById('div_ep_op51').style.display="none";
document.getElementById('div_ep52').style.display="none";
document.getElementById('div_ep_op52').style.display="none";
document.getElementById('div_ep53').style.display="none";
document.getElementById('div_ep_op53').style.display="none";


Mas o certo utilizando os dois for, sendo q o n_temporadas é 5 e o n_episodios é 3 seria:

#Código
document.getElementById('div_ep11').style.display="none";
document.getElementById('div_ep_op11').style.display="none";
document.getElementById('div_ep12').style.display="none";
document.getElementById('div_ep_op12').style.display="none";
document.getElementById('div_ep13').style.display="none";
document.getElementById('div_ep_op13').style.display="none";

document.getElementById('div_ep21').style.display="none";
document.getElementById('div_ep_op21').style.display="none";
document.getElementById('div_ep22').style.display="none";
document.getElementById('div_ep_op22').style.display="none";
document.getElementById('div_ep23').style.display="none";
document.getElementById('div_ep_op23').style.display="none";

document.getElementById('div_ep31').style.display="none";
document.getElementById('div_ep_op31').style.display="none";
document.getElementById('div_ep32').style.display="none";
document.getElementById('div_ep_op32').style.display="none";
document.getElementById('div_ep33').style.display="none";
document.getElementById('div_ep_op33').style.display="none";

document.getElementById('div_ep41').style.display="none";
document.getElementById('div_ep_op41').style.display="none";
document.getElementById('div_ep42').style.display="none";
document.getElementById('div_ep_op42').style.display="none";
document.getElementById('div_ep43').style.display="none";
document.getElementById('div_ep_op43').style.display="none";

document.getElementById('div_ep51').style.display="none";
document.getElementById('div_ep_op51').style.display="none";
document.getElementById('div_ep52').style.display="none";
document.getElementById('div_ep_op52').style.display="none";
document.getElementById('div_ep53').style.display="none";
document.getElementById('div_ep_op53').style.display="none";

Eduardo Pessoa
   - 01 mar 2016

"Copiado" William.

Diogo
   - 01 mar 2016

É só tirar o índice $i e deixar o php fazer isso por mim que deu certo aqui.

Marcio Araujo
   - 01 mar 2016


Citação:
Pessoal esse usuário "Ramom" está só poluindo mesmo, procurem não dar importância para os posts dele, estou cancelando na medida do possível!

Vamos ver até quando vai essa "brincadeira" dele!

O PHP suporta sim loops FOR dentro FOR.


Nesses casos o que pode ser feito?