Ir para conteúdo

POWERED BY:

Arquivado

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

Luciano Silveira Marco

Simplificar código

Recommended Posts

Pessoal,

 

Por não ter experiência em PHP estou pedindo ajuda para aprender a simplificar esse meu trecho "ogro" de um script PHP, acredito que é possível simplificar mas minha falta de conhecimento dificulta, então se alguém puder mostrar como poderia resumir as chamadas de condição IF e talvez as chamadas das variaveis considerando que só muda a numeração do final:

function comparapreco($codigoit, $loja1, $loja2, $loja3, $qtcolunas) {
    $agrupaprecos=array(); 
    $preco1=array_find($codigoit, $loja1);
    $preco2=array_find($codigoit, $loja2);
    $preco3=array_find($codigoit, $loja3); 
    if($qtcolunas=1) {      
      array_push($agrupaprecos, $preco1);      
    } elseif($colunas=2) { 
      array_push($agrupaprecos, $preco1);
      array_push($agrupaprecos, $preco2);
    } elseif($colunas=3) {
      array_push($agrupaprecos, $preco1);
      array_push($agrupaprecos, $preco2);
      array_push($agrupaprecos, $preco3);
    } 
    return $agrupaprecos;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, isto SEMPRE vai retornar TRUE:

 

if($qtcolunas=1)

 

Você está fazendo atribuição, não comparação.

Para comparar, use ==

 

if ($qtcolunas == 1)

 

 

Em vez de criar $preco1, $preco2 e $preco3, crie um array

Você terá $preco[0], $preco[1] e $preco[2]

 

Com isso, em vez dos 3 if's, basta fazer um for, que vai de 0 até $qtcolunas. Dentro do for você faz o array_push com $preco[$indice_do_contador_do_for]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente, isto SEMPRE vai retornar TRUE:

if($qtcolunas=1)

Você está fazendo atribuição, não comparação.

Para comparar, use ==

if ($qtcolunas == 1)

Em vez de criar $preco1, $preco2 e $preco3, crie um array

Você terá $preco[0], $preco[1] e $preco[2]

 

Com isso, em vez dos 3 if's, basta fazer um for, que vai de 0 até $qtcolunas. Dentro do for você faz o array_push com $preco[$indice_do_contador_do_for]

 

Certo, verdade, muito obrigado pela dica, vou tentar alterar!

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.