Ghean 0 Denunciar post Postado Abril 4, 2011 Tenho uma consulta onde preciso che $strRequeridos = '{1004} AND ({1003} OR {1042} OR {1037} OR {1038} OR {1032} OR {1033} OR {1035} OR {1036})'; $arrSelecionados = array( '1037', '1042', '1111' ); $ini = str_replace('{', 'in_array(', $strRequeridos); $ini = str_replace('}', ', $arrSelecionados)', $ini); #retorno in_array(1004, $arrSelecionados) AND (in_array(1003, $arrSelecionados) OR in_array(1042, $arrSelecionados) OR in_array(1037, $arrSelecionados) OR in_array(1038, $arrSelecionados) OR in_array(1032, $arrSelecionados) OR in_array(1033, $arrSelecionados) OR in_array(1035, $arrSelecionados) OR in_array(1036, $arrSelecionados)) Tentei usar o eval() e jogar isso dentro em if, mas não estou conseguido: if( eval($ini) ) Como chamar essa string no if? Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Abril 4, 2011 Amigo Ghean não entendi lhufas cara. Você precisa do in_array pois esta fazendo uma consulta no SQL Server não é isso? dai você faz um replace pra deixar a consulta ok. Até aqui tudo bem. Agora ... pra que d...bos você precisa do eval?? :huh: Explica melhor oque tu quer fazer para podermos lhe ajudar. Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Ghean 0 Denunciar post Postado Abril 4, 2011 Preciso checar se o trecho tratado retornou true ou false Se eu jogar direto a string no if, não funciona. Compartilhar este post Link para o post Compartilhar em outros sites
Periscuelo 20 Denunciar post Postado Abril 4, 2011 Você quer checar se o str_replace funcionou é isso? Compartilhar este post Link para o post Compartilhar em outros sites
crucifier 0 Denunciar post Postado Abril 5, 2011 amigo, consegui assim: $strRequeridos = '{1004} AND ({1003} OR {1042} OR {1037} OR {1038} OR {1032} OR {1033} OR {1035} OR {1036})'; $arrSelecionados = array( '1037', '1042', '1111' ); $ini = str_replace('{', 'in_array(', $strRequeridos); $ini = str_replace('}', ', $arrSelecionados)', $ini); eval("if(" . $ini . ") { echo 'true'; }else{ echo 'false'; }"); abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Abril 5, 2011 Tenta algo tipo isso: if(eval("return (\$ini) ? true : false;")): echo 'sucesso!'; endif; Compartilhar este post Link para o post Compartilhar em outros sites
Ghean 0 Denunciar post Postado Abril 5, 2011 Obrigado crucifier e Kratos Zohr, era isso mesmo que precisava e os dois exemplos funcionaram. Também havia conseguido da seguinte forma: if( eval("return (".$ini.");") ) { echo 'true'; } else { echo 'false'; } Compartilhar este post Link para o post Compartilhar em outros sites