Hamon 1 Denunciar post Postado Abril 4, 2016 Pessoal não estou conseguindo entender o str replace não está me retronando o valor correto, da uma ajuda ai quem puder! CÓDIGO: $letra1='A'; $letra2='B'; $prox_letra_antiga=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M','N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); $prox_letra_nova=array('B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A'); $letra1=str_replace($prox_letra_antiga, $prox_letra_nova, $letra1); $letra2=str_replace($prox_letra_antiga, $prox_letra_nova, $letra2); echo $letra1.$letra2; Esse código me retorna o valor de 'AA', sendo que oq eu queria que ele retornasse fosse 'BC'. Alguma ideia? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Abril 4, 2016 Quando você usa o str_replace como um array ele funciona como um laço de repetição: $prox_letra_antiga=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M','N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); $prox_letra_nova=array('B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A'); $letra1=str_replace($prox_letra_antiga, $prox_letra_nova, $letra1); Primeiro o "A" vai se transformar em "B", então ele vai ler a próxima letra que é o "B", nesse momento a variável $letra1 tem o valor de "B" que veio da iteração anterior, então ele vai alterar para "C" e assim por diante, até chegar a última letra do laço que é o "A". Compartilhar este post Link para o post Compartilhar em outros sites
Hamon 1 Denunciar post Postado Abril 4, 2016 Quando você usa o str_replace como um array ele funciona como um laço de repetição: $prox_letra_antiga=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M','N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); $prox_letra_nova=array('B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A'); $letra1=str_replace($prox_letra_antiga, $prox_letra_nova, $letra1); Primeiro o "A" vai se transformar em "B", então ele vai ler a próxima letra que é o "B", nesse momento a variável $letra1 tem o valor de "B" que veio da iteração anterior, então ele vai alterar para "C" e assim por diante, até chegar a última letra do laço que é o "A". Olá, obrigado pela resposta, não sabia dessa. Tem como eu fazer de outra forma oq eu quero fazer? Fiz com switch mas ficou gigante o tamanho do código. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Abril 4, 2016 Se você sempre for procurar apenas 1 letra, pode usar o array_search para procurar o índice no array original ($prox_letra_antiga) e ai com esse número você vai acessar a letra nova no array novo ($prox_letra_nova). Compartilhar este post Link para o post Compartilhar em outros sites
Hamon 1 Denunciar post Postado Abril 4, 2016 Olá, bom dia. Obrigado pela resposta, achei interessante. So gostaria de saber como vou pegar o valor do array, buscando por uma chave (pega no array_search)? Edit: Já consegui. Agredeço novamente o ESerra por salvar minha vida! Abraço. Compartilhar este post Link para o post Compartilhar em outros sites