Ir para conteúdo

Arquivado

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

thiago_mendes1989

Problema com identificação de numeros inteiros com str_replace

Recommended Posts

Eu tenho o seguinte código


$column_enterprise['estado2'] = 19;


$find = array(01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25);

$replace = array('ACRE', 'ALAGOAS', 'AMAPÁ', 'AMAZONAS', 'BAHIA', 'CEARÁ', 'DISTRITO FEDERAL', 'ESPÍRITO SANTO', 'RORAIMA', 'GOIÁS', 'MARANHÃO', 'MATO GROSSO', 'MATO GROSSO DO SUL', 'MINAS GERAIS', 'PARÁ', 'PARAÍBA', 'PARANÁ', 'PERNAMBUCO', 'PIAUÍ', 'RIO DE JANEIRO', 'RIO GRANDE DO NORTE', 'RIO GRANDE DO SUL', 'RONDÔNIA', 'TOCANTINS', 'SANTA CATARINA');


$column_enterprise['estado2'] = str_replace($find, $replace, $column_enterprise['estado2']);


O que eu quero substituir os números por estados correspondentes, mas eu não sei porque que quando um estado é por exemplo 15 ele me da o nome de ACREBAHIA ao invés de PARÁ. Por que acontece isso? Alguém tem uma sugestão?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Trabalhe com strings, não com inteiros:

$column_enterprise['estado2'] = '19';

$find = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25');
$replace = array('ACRE', 'ALAGOAS', 'AMAPÁ', 'AMAZONAS', 'BAHIA', 'CEARÁ', 'DISTRITO FEDERAL', 'ESPÍRITO SANTO', 'RORAIMA', 'GOIÁS', 'MARANHÃO', 'MATO GROSSO', 'MATO GROSSO DO SUL', 'MINAS GERAIS', 'PARÁ', 'PARAÍBA', 'PARANÁ', 'PERNAMBUCO', 'PIAUÍ', 'RIO DE JANEIRO', 'RIO GRANDE DO NORTE', 'RIO GRANDE DO SUL', 'RONDÔNIA', 'TOCANTINS', 'SANTA CATARINA');
 
$column_enterprise['estado2'] = str_replace($find, $replace, $column_enterprise['estado2']);

echo $column_enterprise['estado2'];

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Trabalhe com strings, não com inteiros:

$column_enterprise['estado2'] = '19';

$find = array('01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25');
$replace = array('ACRE', 'ALAGOAS', 'AMAPÁ', 'AMAZONAS', 'BAHIA', 'CEARÁ', 'DISTRITO FEDERAL', 'ESPÍRITO SANTO', 'RORAIMA', 'GOIÁS', 'MARANHÃO', 'MATO GROSSO', 'MATO GROSSO DO SUL', 'MINAS GERAIS', 'PARÁ', 'PARAÍBA', 'PARANÁ', 'PERNAMBUCO', 'PIAUÍ', 'RIO DE JANEIRO', 'RIO GRANDE DO NORTE', 'RIO GRANDE DO SUL', 'RONDÔNIA', 'TOCANTINS', 'SANTA CATARINA');
 
$column_enterprise['estado2'] = str_replace($find, $replace, $column_enterprise['estado2']);

echo $column_enterprise['estado2'];

 

Puts, tem como vc me dar um exemplo, pois ainda me falta experiência com a sintaxe do php, pois na dúvida não consegui solucionar o problema acima e acabei usando o switch e acabou ficando uma coisa longa e fajuta, mas funcionou, mas eu quero obter algo mas profissional sem gambiarras desnecessárias. Abaixo um exemplo do switch:

 

switch(@$column_enterprise['estado2']){
case 1 : $column_enterprise['estado2'] = "ACRE"; break;
case 2 : $column_enterprise['estado2'] = "ALAGOAS"; break;
case 3 : $column_enterprise['estado2'] = "AMAPÁ"; break;
case 4 : $column_enterprise['estado2'] = "AMAZONAS"; break;
...

}

Compartilhar este post


Link para o post
Compartilhar em outros sites


<?php

 

$column_enterprise['estado2'] = '19';

$replace = array('Registro não encontrado','ACRE', 'ALAGOAS', 'AMAPÁ', 'AMAZONAS', 'BAHIA', 'CEARÁ', 'DISTRITO FEDERAL', 'ESPÍRITO SANTO', 'RORAIMA', 'GOIÁS', 'MARANHÃO', 'MATO GROSSO', 'MATO GROSSO DO SUL', 'MINAS GERAIS', 'PARÁ', 'PARAÍBA', 'PARANÁ', 'PERNAMBUCO', 'PIAUÍ', 'RIO DE JANEIRO', 'RIO GRANDE DO NORTE', 'RIO GRANDE DO SUL', 'RONDÔNIA', 'TOCANTINS', 'SANTA CATARINA');

 

 

echo $replace[$column_enterprise['estado2']];

 

 

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.